2017-08-30 127 views
2

我有以下網址:htaccess的重命名爲友好的URL

http://example.com/de/cat1/?q=product1 
http://example.com/en/cat2/?q=product3 
... 

我想按如下方式重命名。 第一個應該成爲:http://example.com/de/cat1/product1。第二個應該成爲:http://example.com/en/cat2/product3

換句話說,我只是想刪除「Q =?」。

我的.htaccess不提供正確的結果。 目前看起來如下:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ ?q=$1 [NC,L] 

如果用戶進入http://example.com/de/cat1/product1它會變成:http://example.com/de/cat1/?q=/de/cat1/product1

我該如何解決這個問題?

回答

3

這是因爲你捕捉一個組的整個URI,並使用它作爲目的地查詢字符串。用以下內容替換您的重寫規則:

RewriteRule ^(.+)/(.+)$ /$1?q=$2 [L] 
+0

工程。謝謝。是否有可能將SEO友好的網址保留在地址欄中,而不是將其更改爲真實的網址?我想在地址欄中保留'http:// example.com/de/cat1/product1'。 – user9

+0

@ USER9是,其可能的。您需要將舊網址重定向到新網址。你可以爲此使用RewriteRule。 – starkeen

+0

我不知道該怎麼做。我如何修改我的htaccess? – user9