2016-05-12 43 views
1

嗨,我正在使用以下htaccess。PHP htaccess多個變量

RewriteEngine On 
RewriteBase /JustSnacksNew/ 


RewriteCond %{THE_REQUEST} /Products\.php\?category=([^\s&]+) [NC] 
RewriteRule^%1? [R=302,L] 
RewriteCond %{THE_REQUEST} /Products\?category=([^\s&]+) [NC] 
RewriteRule^%1? [R=302,L] 
RewriteRule ^([A-Z,0-9,a-z-]+)$ Products.php?category=$1 [L,NC,QSA] 

RewriteCond %{THE_REQUEST} /ViewProduct\.php\?category=([^\s&]+)&product=([^\s&]+) [NC] 
RewriteRule^%1? [R=302,L] 
RewriteCond %{THE_REQUEST} /ViewProduct\?category=([^\s&]+)&product=([^\s&]+) [NC] 
RewriteRule^%1? [R=302,L] 
RewriteRule ^([A-Z,0-9,a-z-]+)$ ViewProduct.php?category=([^\s&]+)&product=$1 [L,NC,QSA] 

# PHP hiding rule 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*)$ $1.php [L] 

在我傳遞一個variable.It的工作fine.But IN我傳遞了兩個variables.But被重定向到的第一條規則第二條規則的第一條規則。 請幫我解決這個問題。

第一url我傳遞的是:./Products.php?category=catname

第二url傳球:./ViewProduct.php?category=catname&product=product

回答

0

您可以使用:

RewriteEngine On 
RewriteBase /JustSnacksNew/ 

RewriteCond %{THE_REQUEST} /ViewProduct(?:\.php)?\?category=([^&]+)&product=([^\s&]+) [NC] 
RewriteRule^%1/%2? [R=302,L] 
RewriteCond %{THE_REQUEST} /Products(?:\.php)?\?category=([^\s&]+) [NC] 
RewriteRule^%1? [R=302,L] 

# skip all files and directories from rewrite rules below 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule^- [L] 

# PHP hiding rule 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*)$ $1.php [L] 

RewriteRule ^([A-Z,0-9-]+)/?$ Products.php?category=$1 [L,NC,QSA] 
RewriteRule ^([A-Z,0-9-]+)/([A-Z,0-9-]+)/?$ ViewProduct.php?category=$1&product=$2 [L,NC,QSA] 
+1

感謝bro.It的工作fine.Now我的工作子域。當我將項目移到域中時,我需要在htaccess文件中做什麼更改。請。 –

+0

域沒有任何更改。或最終'RewriteBase'。 – Croises

+0

好的兄弟..謝謝 –