2014-01-22 207 views
1

我目前有一個.htaccess文件,效果很好。到目前爲止,我有:htaccess友好URL重定向

Options +FollowSymlinks -Multiviews 
#first part 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www.mydomain.net$ [NC] 
RewriteRule ^(.*)$ http://mydomain.net/$1 [R=301,L] 

#second part 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/$ $1.php 
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php 
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ /$1/$2/$3.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ /$1/ [R=301,L] 

#third part 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
RewriteRule^%1 [R,L,NC] 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule^%{REQUEST_URI}.php [L] 

第一行是我需要的,因爲我使用GoDaddy託管。 第一部分是將www.mydomain.net重定向到mydomain.net。 第二部分是將mydomain.net/abcd重定向到mydomain.net/abcd.php。 第三部分是在URL末尾刪除.php文件。

現在我需要添加將mydomain.net/products/?category=electronics重定向到mydomain.net/products/electronics的代碼,但是我無法使其工作。

我試着添加「RewriteRule /products/(.*)$/products/?category = $ 1」和許多其他代碼,我發現堆棧溢出,但沒有人似乎爲我工作。

謝謝你們的時間。

回答

1

有你這樣的代碼:

Options +FollowSymlinks -Multiviews 

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www.mydomain.net$ [NC] 
RewriteRule ^(.*)$ http://mydomain.net/$1 [R=301,L] 

RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ /$1/ [R=301,L] 

RewriteCond %{THE_REQUEST} /(products)/\?category=([^\s&]+) [NC] 
RewriteRule^/%1/%2? [R=302,L] 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
RewriteRule^%1 [R=302,L] 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 

RewriteRule ^(products)/([^/]+)/?$ /$1/?category=$2 [L,NC,QSA] 

RewriteRule ^([^/]+)/([^/]+)/?$ /$1/$2.php [L] 

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ /$1/$2/$3.php [L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.+?)/?$ $1.php [L] 
+0

太謝謝你了。奇蹟般有效。 – user3117155

+0

不客氣,很高興它解決了。 – anubhava

+0

@anubhava你在這裏?我可以問你一些事情嗎? – Europeuser