我写了一些htaccess规则。但存在冲突。我无法解决问题。
RewriteRule ([a-z]+)/(.+).php /$2.php?lang=$1 [QSA,L]
语言规则/en/login.php => /login.php?lang=en等。
此外我有另一条规则
RewriteRule ^album/([0-9]+)/playlist\.xml$ includes/xml/mediaxml.php?album=$1
此规则适用于演示音乐专辑。 album / ID / playlist.xml =>包括/ XML / mediaxml.php?专辑= $ 1
我们的客户可以通过此播放列表收听音乐。之前我写了playlist.xml规则。
当我添加语言支持时。我注意到了这个问题。我该如何解决?
你有什么想法吗?
编辑:
所有.htaccess代码
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^dunyaturizm\.com\.tr$
RewriteRule (.*) http://www.dunyaturizm.com.tr/$1 [R=301,L]
#php scriptleri languagelere dönderiyor
RewriteRule ^album/([0-9]+)/playlist\.xml$ includes/xml/mediaxml.php?album=$1 [QSA,L]
RewriteRule ([a-z]+)/(.+).php /$2.php?lang=$1 [QSA,L]
RewriteRule ^en/$ http://www.dunyaturizm.com.tr/?lang=en
#Ürün Detay Sayfası
RewriteRule ^([a-zA-Z0-9_-]+)-([0-9]+)\.html$ product.php?pid=$2&lang=tr
RewriteRule ^en/([a-zA-Z0-9_-]+)-([0-9]+)\.html$ product.php?pid=$2&lang=en
#Kategori Sayfası
RewriteRule ^([a-zA-Z0-9_-]+)-([0-9]+)$ product.php?cid=$2
RewriteRule ^sitemap\.xml$ sitemap.php [L]
ErrorDocument 404 /404.php
答案 0 :(得分:1)
重新排序规则(首先制作相册规则)并向其添加L
标志,这样规则执行将在匹配时立即停止:
RewriteEngine on
RewriteRule ^album/([0-9]+)/playlist\.xml$ includes/xml/mediaxml.php?album=$1 [L]
RewriteCond %{REQUEST_URI} !^includes/xml/mediaxml\.php$
RewriteRule ([a-z]+)/(.+).php /$2.php?lang=$1 [QSA,L]
答案 1 :(得分:0)
嗯,我不太确定,但我认为如果你移动专辑Up with L flag应该有效。