[英]rewrite url to subdirectory on subdomain
我的所有客戶網站都位於我的子域的目錄中:
customers.example.com/sites/customer_name
我想重寫網址,所以我的客戶只需要寫
customers.example.com/customer_name
我嘗試了一些不同的htacces
腳本,但沒有一個起作用。 其中之一給我一個error 500 internal server error
,所以我的mod_rewrite
是活動的
這是我當前的.htaccess
文件:
RewriteEngine On
RewriteRule ^sites/(css|js|img)/(.*)?$ /$1/$2 [L,QSA,R=301]
RewriteRule ^(.*)$ /sites/$1/ [QSA,L]
由於重寫引擎循環,此模式^(.*)$
將盲目匹配所有內容,包括規則的目標: /sites/something
。 它將繼續將/sites/
附加到URI的前面,直到最終得到/sites/sites/sites/sites/sites/sites/sites/
等。
您需要添加一些條件來防止循環,如下所示:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /sites/$1/ [L]
要么
RewriteCond %{REQUEST_URI} !^/sites/
RewriteRule ^(.*)$ /sites/$1/ [L]
要么
RewriteCond %{DOCUMENT_ROOT}/sites%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/sites%{REQUEST_URI} -d
RewriteRule ^(.*)$ /sites/$1/ [L]
這應該起作用...如果正確理解您的最終目標。 但不清楚您是否希望同時從customers.example.com/sites/customer_name
和customers.example.com/customer_name
訪問內容:
RewriteEngine on
RewriteRule ^/sites/(.*)$ http://customers.example.com/$1 [L,R=301]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.