1

私は htaccess ファイルの操作にあまり慣れていないので、このファイルでしばらく苦労しました:

URL (example.com/foo/bar) を (example.com/index.php?q=/foo/bar) に書き換える方法を知りたいURL :

末尾のスラッシュを単独で追加する方法を知っています:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://exemple.com/$1/ [L,R=301]

そして、 index.php に書き換える方法:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L]

しかし、両方を同時に行う方法がわかりません...

どんな助けでも大歓迎です!

ピエール・フレッセ

4

2 に答える 2

2

.htaccess でこれを試してください (できる限りテストしました):

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [L]

RewriteCond %{REQUEST_URI} [^/]$
RewriteRule ^(.*)$ $1/ [L,R=301]

RewriteRule ^(.*)$ index.php?q=$1 [L]
于 2012-05-11T22:34:21.720 に答える
0

ここで受け入れられた回答がありますが、実際の回答は、他の回答のように複数の(そして遅い)リダイレクトを介して実行するよりもはるかに簡単であるため、これに回答したいと思います。

次のコードを.htaccessアンダーDOCUMENT_ROOTディレクトリに配置します。

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php?q=%{REQUEST_URI} [L]
于 2012-05-12T00:04:20.403 に答える