1

2 つのサーバーで Apache 2.2 を使用しています。

  • 開発: localhost/project/public
  • 制作: www.example.com

クリーン URL の既存の書き換えルールがあります (URL から「index.php」を削除するため)。

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

末尾にスラッシュがある場合にのみ機能する特別なルートが 1 つあります。

  • 特別なルート (開発) : localhost/public/documentation/
  • 特殊ルート (本番) : www.example.com/documentation/

既存の .htaccess に書き換えルールを追加して、常に末尾のスラッシュを追加する方法を教えてください。

4

2 に答える 2

3

つまり、末尾のスラッシュなしでRewriteRuleのみ一致する別のものを追加するだけです。/documentation最初のルールは末尾のスラッシュを追加し、次に既存のルールはindex.php.

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^(documentation)$ $1/ [NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

ブラウザのアドレス バーにも末尾のスラッシュを反映させたい場合は、ルールを次のように変更します。

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteRule ^(documentation)$ $1/ [R=301,NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
于 2013-10-07T10:27:36.457 に答える
0

最初に、 .htaccessファイルごとに 1 回、これらのディレクティブを追加することを忘れないでください。

Options +FollowSymlinks
RewriteEngine on

そして、これを試すことができます:

RewriteRule ^/?(documentation)$ /$1/ [R,NC,L]

またはこれ:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} (.+)/([^/]+)$
RewriteRule ^/?(documentation)/(.+)$ /$1/$2/ [R,NC,L]

私はあなたの質問について混乱しています..

于 2013-10-08T04:03:58.647 に答える