簡體   English   中英

將網址重寫到子域上的子目錄

[英]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_namecustomers.example.com/customer_name訪問內容:

RewriteEngine on
RewriteRule ^/sites/(.*)$ http://customers.example.com/$1 [L,R=301]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM