0

我写了一些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

此规则适用于演示音乐专辑。专辑/ID/playlist.xml = > 包括/xml/mediaxml.php?album=$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
4

2 回答 2

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]
于 2012-07-12T10:03:14.430 回答
0

好吧,我不太确定,但我认为如果您将专辑向上移动并带有 L 标志应该可以。

于 2013-07-21T17:57:43.547 回答