2013-05-13 53 views
0

我工作在我的網站的htaccess。.htaccess雙變量的問題

我有這片.htacess的:

ErrorDocument 404 /404.html 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 


RewriteRule ^/([a-zA-z0-9]+)/([a-zA-z0-9]+).html$ index.php?lang=$2&seo=$1 [QSA,L] 

RewriteRule ^/([a-zA-z0-9]+).html$ index?seo=$1 [QSA,L] 

什麼IAM與此的.htaccess看是這樣的:http://mywebsite.com/en/test-page.html insted的的http://mywebsite.com/index.php?lang=en&seo=test-page承擔數「恩」爲「郎」和「測試頁「as」seo「。

問題是,這會引發404錯誤。

有沒有辦法解決這個問題?

回答

0

試試這個,我認爲問題是index?seo必須是index.php?seo並跳過標誌,如果你把它S=1樣式匹配跳過一個重寫規則後

RewriteRule ^/([a-zA-z0-9]+)/([a-zA-z0-9]+).html$ index.php?lang=$1&seo=$2 [S=1,QSA,L] 

RewriteRule ^/([a-zA-z0-9]+).html$ index.php?seo=$1 [QSA,L] 

,如果你想通過查詢也使用此

RewriteRule ^/([a-zA-z0-9]+)/([a-zA-z0-9]+).html(.*)$ index.php?lang=$1&seo=$2$3 [S=1,QSA,L] 

RewriteRule ^/([a-zA-z0-9]+).html(.*)$ index.php?seo=$1$2 [QSA,L] 
+0

仍然收到404錯誤。 – Joscplan 2013-05-13 15:23:19

0

嘗試從你的正則表達式除去最主要的斜線:

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([a-zA-z0-9]+)/([a-zA-z0-9]+)\.html$ index.php?lang=$1&seo=$2 [QSA,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([a-zA-z0-9]+)\.html$ index.php?seo=$1 [QSA,L] 

另請注意,RewriteCond僅適用於一個RewriteRule

+0

試過但沒有運氣與這一個。 – Joscplan 2013-05-13 15:23:44

+0

@JoseCardama Hm,嘗試重定向到URL,看看你得到了什麼:'[R,QSA,L]' – Korikulum 2013-05-13 15:25:57

+0

RewriteRule ^([a-zA-z0-9] +)/([a-zA-z0-9 ] +)\。html $ pages/anime.php?lang = $ 1&seo = $ 2 [R,QSA,L]將我發送到索引頁,與以前一樣。 – Joscplan 2013-05-13 15:32:08