2017-09-21 51 views
0

我要重寫以下網址:URL重寫子目錄不改變基礎

https://www.example.com/tools/tool.php?id=predict-backlinks 

要:

https://www.example.com/tools/predict-backlink 

由於這裏建議:URL Rewriting for sub-folder

現在工作的網址是https://www.example.com/tools/tool/predict-backlink

以下代碼工作正常,但是tool正在被添加到URL中。我希望它在URL中無需使用tool

Options -MultiViews 
RewriteEngine On 
RewriteBase /tools/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^tool/(.*) tool.php?id=$1 [L] 
+0

你嘗試運行此命令:a2enmod重寫 –

回答

0

此規則應該爲你做:

RewriteEngine On 
RewriteCond %{QUERY_STRING} id=(.+) [NC] 
RewriteRule ^(.*)$ https://www.example.com/tools/%1? [R=301,NC,L] 

這樣做是什麼爭奪你的查詢id=並使用重寫規則將追加到該網址的使用%1結束。

?是在那裏停止原來的查詢出現在結尾也。整個重寫都是使用301重定向完成的。

請確保您清除緩存之前測試此。

編輯:

感謝您更新的問題,現在更清晰。它添加tool/的原因是因爲你的RewriteRule前綴^tool/(.*)的這部分。你自己添加它。

只需從RewriteRule中刪除tool/,它應該可以在不添加tool的情況下工作。

RewriteRule ^(.*) tool.php?id=$1 [L] 
+0

子目錄 –

+0

加入你設置'的AllowOverride None'時'的AllowOverride All'是沒有工作? – Lag

+0

我已更新該問題。 –