0

現在、URLから.phpを削除する次のコードがあります

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

しかし、ファイル名の文字 _ を URL の / に置き換えたいとも考えています。これを試してみましたが、奇妙なエラーが発生するだけです。誰でもこれを行う方法を知っていますか?

4

1 に答える 1

0

要求されたファイルにはアンダースコアが 0 個または 1 個しか含まれていない可能性があると述べたので、これは機能するはずです。

RewriteCond %{REQUEST_URI} \.php$ [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME}\.php !-f
RewriteRule .* - [S=2]
RewriteRule ^(.*)$ $1.php
RewriteRule ^([^_]+)_([^_]+)$ $1/$2 [L]

前の 3 つの条件がすべて真である場合にのみ両方のルール (最初のルールだけでなく) を適用するには、条件を否定し、後でスキップ ルールを適用します。[S=2]つまり、「次の 2 つのルールをスキップする」ことを意味します。

したがって、新しい 3 つの条件がすべて false (したがって、それらの否定が true) の場合、最初の書き換え.phpがすべての要求に追加されます。2 回目の書き換えは、すべてのアンダースコアをスラッシュに変更し、書き換えを停止します。

于 2013-03-23T16:56:54.107 に答える