2016-09-14 61 views
1

我們目前有一個.htaccess重寫規則不正確(或正確的規則是不正確的)重定向的URL。htaccess文件似乎選擇'如果包含'爲重寫規則

的規則

RewriteRule ^holiday-ecards/?.*$ /appindex.php [L] 

此所需的重定向是:

http://domain.com/holiday-ecards/ 
http://domain.com/holiday-ecards/1/ 
http://domain.com/holiday-ecards/1/2 
http://domain.com/holiday-ecards/1/2/3 

然而,這似乎也可以重定向以下,這是不希望:

http://domain.com/holiday-ecards-business/ 

編輯

/appindex.php 

這是照顧應用程序路由並按預期工作。

回答

1

一些你能做到這一點的方式,一會是樹立了一個改寫條件不碰的URI有節日賀卡加連字符,像這樣:你有

RewriteCond %{REQUEST_URI} !^/holiday-ecards-.*$ 
RewriteRule ^holiday-ecards/?.*$ /appindex.php [L] 

不知道有多少變化URI中包含holiday-ecards

+0

完美,謝謝! –

0
RewriteRule ^holiday-ecards/?.*$ /appindex.php [L] 

(注意,這是一個內部重寫,而不是一個重定向。)

上面RewriteRule圖案使得斜線後holiday-ecards可選的(所以它也將匹配holiday-ecards-business )。但是,在應該重寫的示例URL中,斜槓是強制性的。所以,這樣看來,你只需要爲強制要求,例如(?):

RewriteRule ^holiday-ecards/ /appindex.php [L] 

尾隨模式.*$是多餘的。