2017-12-08 19 views
1

htaccess RewriteRulesを書き換えて設定しました。 "domain.ext/en/page""domain.ext?lang=en&p=page"が期待通りに機能します。htaccess RewriteRule(オプション言語切り替え付き)

しかし、私は言語部分をオプションにしたいので、"domain.ext/page""domain.ext?lang=en&p=page"に書き換えます。あなたは、次の正規表現を試すことができます

RewriteRule ^([^/][[NOT (en or nl)]]+)/?$   index.php?lang=en&p=$2 
+0

問題を解決する答えはありませんでした。私は以来、私の心を変え、言語文字列をオプションにしたくないので、解決策を見つける必要はありません。 – bur

答えて

1

RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_REFERER} !^domain.ext/.*$ [NC] 

Options +FollowSymlinks 

RewriteRule ^$    index.php?lang=en 
RewriteRule ^(en|nl)/?$   index.php?lang=$1 
RewriteRule ^(en|nl)/([^/]+)/?$   index.php?lang=$1&p=$2 

は、だから私のようなものを追加したい:

^(?!en|nl)([^/]+)/?$ 

"domain.ext/page"を書き換えるここ

はhtaccessのコードです index.php?lang=en&p=$2にも書き換えられます。

また、追加することができます。

^(?!en|nl)[a-z]{2}/([^/]+)/?$ 

index.php?lang=en&p=$2

jp/page/fr/page/を書き換えるために、私はそれはあなたを助けることを願っています。幸運:-)

+0

動作していないようです。 "RewriteRule ^(en | nl)/([^ /] +)/?$ index.php?lang = $ 1&p = $ 2"は動作を停止します。 – bur

関連する問題