2013-04-24 65 views
1

我設置一個重寫規則相沖突=鍵入時重寫查詢字符串htaccess的不與WordPress

RewriteRule ^names/([a-zA-Z0-9_]+|)(-in-|)([a-zA-Z0-9_]+|)(-|)([a-zA-Z0-9_]+|)(-|)([0-9]+|)/?$ query.php?sector=$1&location=$3&firmname=$5&firmnumber=$7 

其工作正常,即/名/ something_else功能於某處,somename-100 它傳遞這些變量的值爲query.php頁面。

這是在使用WordPress的網站上構建的,我遇到的問題是默認的WordPress htaccess規則阻止我使用上面沒有/ names /的重寫規則 - 因爲我希望只需將查詢字符串作爲url即可。

但是,如果我從重寫規則中刪除^ names /,它將阻止WordPress頁面無法訪問。我已經把我的重寫代碼在htaccess的文件的頂部見下文:

RewriteEngine On 
RewriteBase/
RewriteRule ^names/([a-zA-Z0-9_]+|)(-in-|)([a-zA-Z0-9_]+|)(-|)([a-zA-Z0-9_]+|)(-|)([0-9]+|)/?$ query.php?sector=$1&location=$3&firmname=$5&firmnumber=$7 
ErrorDocument 404 /404.php 
RewriteRule ^index\.php$ - [L] 
# add a trailing slash to /wp-admin 
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] 
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] 
RewriteRule . index.php [L] 
# END WordPress 

如果我把下面的WordPress的規則重寫規則,它停止工作都在一起。任何人都可以闡明爲什麼這可能是,並指出我在正確的方向來解決這個問題?

回答

1

試試這個。添加另一個RewriteBase WP htaccess的

RewriteBase /names/ 
RewriteRule ^names/([a-zA-Z0-9_]+|)(-in-|)([a-zA-Z0-9_]+|)(-|)([a-zA-Z0-9_]+|)(-|)([0-9]+|)/?$ query.php?sector=$1&location=$3&firmname=$5&firmnumber=$7 
+1

由於馬塞洛 - 這種幫助,雖然我後來發現的其他問題與此(進一步衝突的問題與WordPress),但有因爲使用了類似的htaccess重寫開發了另一種解決方案,並連同重定向PHP文件以更好地減少和壓縮URL。 – 2013-06-27 12:52:06

0

的最後一行後,您必須使用[L]來標記你的統治結束。您的規則更改爲:

RewriteRule ^names/([a-zA-Z0-9_]+|)(-in-|)([a-zA-Z0-9_]+|)(-|)([a-zA-Z0-9_]+|)(-|)([0-9]+|)/?$ query.php?sector=$1&location=$3&firmname=$5&firmnumber=$7 [L,QSA,NC]