2012-08-13 133 views
1

我正在嘗試爲網站中的所有頁面創建漂亮鏈接, 我想foo.com/services/domestic轉至foo.com/index.php?page=services-domestic。我在我的.htaccess中,它的工作罰款上面的例子,但如果我嘗試去foo.com/services/domestic/case/1(預期/index.php?page=services-domestic-case-1),我收到了404重寫規則循環在.htaccess中無法正常工作

# a/b/c/d -> a-b-c-d 
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9_-]+)$ $1-$2 [N] 

# a-b-c-d -> index.php?page=a-b-c-d 
RewriteRule ^([^(/|\.)]+)$ index.php?page=$1 

我試過只是重複[N]三次沒有旗幟的無效。除了第一個深度以外,它不適用於任何應用。可能只是我的業餘正則表達式,但我不明白什麼是突破,任何想法?

回答

0

它看起來像你只需要調整你的正則表達式和重寫標誌:

# a/b/c/d -> a-b-c-d 
RewriteRule ^(.*)/(.*) /$1-$2 [L] 

# a-b-c-d -> index.php?page=a-b-c-d 
RewriteRule ^([^/.]+)$ /index.php?page=$1 [L] 
+0

yayyy它的作品!我需要從下面的答案中添加RewriteCond,但它不會混淆任何資產網址 – 2012-08-13 19:07:06

0

試試這個:

RewriteRule ^([\w-]+)/([\w-]+)$ $1-$2 [N] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+)$ index.php?page=$1 
+0

這個工程上2+深度,但與我的第一個例子它返回'?page = services-domestic/domestic' – 2012-08-13 15:51:37

+0

我的錯誤,請嘗試我編輯的 – Oussama 2012-08-13 15:52:30

+0

現在它正在崩潰服務器:/ \ w'做了什麼? – 2012-08-13 16:03:15

相關問題