2016-02-26 100 views
0

這裏是我的.htaccess的mod_rewrite的部分:

RewriteEngine on 
RewriteBase/

RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ web/$2?w=$1 [QSA] 

這樣做是什麼,如果有人訪問http://example.com/webname/ 是真正處理的URL是 http://example.com/web/index.php?w=id

現在,如果我嘗試將一個額外的隨機GET參數傳遞給我重寫的URL,則該參數將被忽略。所以,如果我試圖在這裏做訪問:

index.php?page=page_id

參數page被忽略。它似乎並沒有得到通過。

這個問題能解決嗎?如果是這樣,怎麼樣?

+2

'index.php'不符合您的重寫規則您不允許' 。' –

+0

那麼我該如何讓點?如何解決它? –

+0

谷歌是你的朋友:http://www.regular-expressions.info/charclass.html –

回答

0

您應該使用這樣的規則:

RewriteEngine on 
RewriteBase/

RewriteRule ^([\w-]+)/?$ web/index.php?w=$1 [QSA,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([\w-]+)/([\w.-]+)/?$ web/$2?$1=1 [QSA,L] 

這將讓你使用漂亮的網址爲任一:

http://example.com/welcome 
http://example.com/welcome?page=page_id 
+0

但我有更多的只是一個變種.. –

+0

example.com/{the_username}/index.php?template = {tempp_name} &id = {page_id} –

+1

什麼是您想要在瀏覽器中顯示的確切網址以及相同的內部網址應該是什麼? – anubhava