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 = > includes/xml/mediaxml.php?album=$1

お客様はこのプレイリストで音楽を聴くことができます。前にプレイリスト.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 に答える