2015-10-13 69 views
0

我的.htaccess文件有問題。


我的問題HTACCES index.php參數

當我進入我的網頁上有以下網址:

http://www.website.com/sys/module/photos/ 

我可以在頁面上添加一些照片通過以下網址:

http://www.website.com/sys/module/photos/add/10/ 

http://www.website.com/sys/module/photos/add/485/ 



現在我對index.php文件分頁,我想進入的頁面是這樣的:

http://www.website.com/sys/module/photos/ 

並進入下一個頁面與以下網址:

http://www.website.com/sys/module/photos/1/ 



這是我的.htaccess文件

RewriteEngine On 
RewriteRule add/(.*)/$ add.php?id=$1 
RewriteRule (.*)/$ index.php?page=$1 



但是,如果我現在去http://www.website.com/sys/module/photos/add/10/它將顯示index.php文件的內容。

我該如何解決這個問題?

+0

我認爲這是因爲'RewriteRule(。*)/ $ index.php?page = $ 1'的規則。 '。*'基本上完全匹配'http:// www.website.com/sys/module/photos/add/10 /' –

回答

2

我假設你的htaccess的文件是在「照片」文件夾中,這樣的話你的規則需要看起來像這樣:

RewriteEngine On 
RewriteRule ^add/([0-9]+)/?$ add.php?id=$1 [L] 
RewriteRule ^([0-9]+)/?$ index.php?page=$1 [L] 

你會縮小你所匹配的限制捕獲組到只有數字。

0

的的.htaccess應該是這樣的:

RewriteEngine On 
RewriteRule add/(.*)/$ add.php?id=$1 
RewriteRule ^$ index.php 

正如在評論中提到的,.*會匹配一切,包括URL http://www.website.com/sys/module/photos/add/10/

的解決辦法是改變底部重寫規則只匹配網頁(當你的路徑爲/)

+0

您的第二條規則使用反向引用,但沒有捕獲組 –

+0

啊,是的,我有自從刪除了反向引用 –