0

Laravel 3 インストール用の htaccess ファイルに次のコードを設定しています。

# Removes trailing slashes (prevents SEO duplicate content issues)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [L,R=301]

# Enforce www
RewriteCond %{HTTP_HOST} ^([0-9a-z-]+)\.([0-9a-z-]+)$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

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

これは、最初の ReWrite 条件にアクセスするまでは問題ないように見えます。

この URL への移動:

/information/

リダイレクト先:

/home/xxx/Dropbox/Development/laravel/httpdocs/information

したがって、末尾のスラッシュは削除されますが、絶対 URL にリダイレクトされます。

なぜそれをしているのですか?どうすれば修正できますか?

ありがとう :)

4

1 に答える 1

1

RewriteBase /すべてのルールの上に a (またはベース URI であるべきもの)を追加します。

何が起きているかというと、mod_rewrite は書き換えルールの対象が URL パスかファイル パスかを推測しようとして、それがファイル パスであると誤って推測し、間違ったベース パスを追加します。

于 2012-12-31T06:02:48.547 に答える