1

私は最初の式エンジンサイトをやっています。index.phpを削除したいです。たくさん読んで、基本的な式エンジンの書き換え「削除」を試しましたが、言語に応じてサイトをリダイレクトするためです。 mもっと良い方法があると確信しています!index.phpの前に:domain.com/en/index.php/segment1/....のようなlangプレフィックスがあります。今のところ私は:を使用しています。

RewriteCond $2 !\.(index|css|js|gif|jpe?g|png|robot.txt|sitemap.xml) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)?/([^/]*)?/?([^/]*)?/?([^/]*)?/?([^/]*)?$ /$1/index.php?/$2/$3/$4/$5 [L]

より良いまたはより良い方法はありますか!?

動作していますが、4つ以上のセグメントがある場合は、6ドルなどを追加する必要があります。もっと良い方法があることを確認してください...

よろしく..

ベン

編集:

ChannelImages(DevDemon)やChannelFilesでまだ1つの問題があります。domain.com/?ACT=XXでアップロード場所をテストする必要があります。xxは数字です。

RewriteCond%{REQUEST_URI}!^(ACT =。*)$[NC]を追加しようとしました

今のところ、ページはホームページにリダイレクトされます。/frまたは/en.。

4

1 に答える 1

0

着信 URL 構造が常に次のようなものであると仮定します。

http://domain.com/LangCode/anything

ここでLangCodeanythingは変数です。ルート ディレクトリの .htaccess ファイルでこれを試すことができます。

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI}  !\.(index|css|js|gif|jpe?g|png) [NC]
RewriteCond %{REQUEST_URI}  !(robot.txt|sitemap.xml)        [NC]
RewriteCond %{REQUEST_URI}  !index\.php                     [NC]
RewriteRule ^([^/]+)/(.*)/?$  /$1/index.php?/$2             [NC,L]

サイレントに次の場所にマップします:

http://domain.com/LangCode/index.php?/anything

永続的で目に見えるリダイレクトの場合は、[NC,L] を [R=301,NC,L] に置き換えます。

于 2013-03-16T23:16:40.347 に答える