2012-12-10 94 views
1

我對htaccess和mod_rewrite或其他方面沒有多少經驗,但是如何刪除?從一個URL看起來像這樣:site.com/?page所以它看起來像site.com/page從URL中刪除問號

我此刻想這樣的:

RewriteEngine On 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(index\.php)?\?([^&\ ]+) 
RewriteRule^/%1? [L,R=301] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php?$1 [L] 

但它只是重定向一切只是site.com索引頁面,而不會在url別的。

+0

請不要在標題中使用僞標籤。我們有*真實*標籤。 – Charles

+2

第一個'RewriteCond'是什麼意思? –

+0

@ shiplu.mokadd.im定義mod_rewrite的條件?我認爲表達式'/(index.php)?\?([^&\] +)'可能是錯誤的,但我不確定... – Jonny

回答

0

您的反向引用不正確。您希望匹配%{THE_REQUEST}的第二個分組,而不是第一個分組(即index.php)。所以,你的第一個規則應該是這樣的:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(index\.php)?\?([^&\ ]+) 
RewriteRule^/%2? [L,R=301] 
# 2 here--------^ 

第二屆分組將是([^&\ ]+)比賽。

0

根據你的問題,報價:

「......一個如何從看起來像一個URL刪除?site.com/?page所以它看起來像site.com/page

這將做到這一點:

RewriteEngine On 
RewriteRule .* /%{QUERY_STRING}? [L]