2013-11-04 59 views
1

我想將?=重寫爲正斜槓而不必重寫整個URL。我有很多麻煩讓我的頭在.htaccess左右,但它可以簡單地將?=轉換爲/ - 這在我看來就像一個更簡單的選項。我嘗試了各種方法,但它毀了我的.js和css文件,爲什麼我不能將這兩個字符重寫爲/?重寫「?」和「=」轉換爲正斜槓/

我從所有URL消除.php爲:

# -FrontPage- 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

# BEGIN GZIP 
<ifmodule mod_deflate.c> 
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript x-font/otf x-font/TTF x-font/eot 
</ifmodule> 
# END GZIP 

這是我的網址我想轉換,但只有?和=

www.example.com/search?store=hello 

www.example.com/search/store/hello 

回答

3

您是否在尋找這麼簡單的東西嗎?

RewriteRule ^search/([^/]+)/([^/]+)$ /search.php?=$2 

把它放在你當前的RewriteRule之上,它應該可以正常工作。

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^search/([^/]+)/([^/]+)$ /search.php?=$2 
RewriteRule ^(.*)\.php$ $1.php 
+0

謝謝,我遇到的問題是這打破了.css和.js文件? – SethCodes

+0

@SethCodes這應該只打破css/js文件,如果它們匹配正則表達式(以「search /」開頭,那麼在到達另一個「/」之前至少有一個字符,那麼在結束之前至少有一個字符不是斜槓) 。如果你不想匹配句點(以防它與你的js/css衝突),你可以改變最後一句爲'([^/\。] +)'。這意味着「不是斜線的字符,也不是重複1次到無限次的週期」。 – h2ooooooo

+0

'RewriteRule^search /([^/]+)/([^/\.]+)$ /search.php?$ 1 = $ 2'使用它,它取得了結果,但CSS和JS仍然對我很bit 012。如果有另一種方法來阻止js/css發生衝突?圖像也衝突。 – SethCodes