1

末尾にスラッシュがない場合、私が持っているリライトURLはリダイレクトされません。ここに行くユーザーをここにリダイレクトしたいhttp://example.com/pohttp://new.example.com/po/index_mi.php

私はこれらの行を試しましたが、どれも機能しませんでした:

RewriteRule  /po(/)?$ http://new.example.com/po/index_mat.php [R=301,L]
RewriteRule ^/po(/)$ http://new.example.com/po/index_mat.php [R=301,L]
RewriteRule ^/po$ http://new.example.com/po/index_mat.php [R=301,L]

これが完全な仮想ホストです:

<VirtualHost 192.228.100.142:80>
ServerAdmin serveradmin@example.com
DocumentRoot /home/drupal_1
ServerName example.com
ServerAlias www.example.com 
Alias /movies /home/movies/
ErrorLog /var/log/httpd/example.com_err_log
  CustomLog /var/log/httpd/example.com_log special
<Directory /home/drupal_1>
  Options FollowSymLinks Includes ExecCGI
          AllowOverride All
          DirectoryIndex index.html index.htm index.php
</Directory>

# Rewrite Rules #####################
RewriteEngine On
RewriteRule ^/webmedia/(.*) / [R=301,L]
RewriteRule ^/marquee.php / [R=301,L]
RewriteRule ^/register /user/register [R=301,L]
RewriteRule  ^/po(/)?$ http://new.example.com/po/index_mat.php [R=301,L]
# end Rewrite Rules #################

</VirtualHost>

アップデート:

私はそれをこの行で動作させました:

RewriteRule ^/po$ http://new.example.com/po/index_mat.php [R=301,L]
4

2 に答える 2

4

試す:

RewriteOptions AllowNoSlash

mod_rewriteのドキュメントから:

AllowNoSlash

デフォルトで、mod_rewrite は、ディスク上のディレクトリにマップされているが、末尾にスラッシュがない URL を無視します。これは、mod_dir モジュールが末尾にスラッシュのある標準 URL へのリダイレクトをクライアントに発行することを想定しています。

DirectorySlashディレクティブが に設定されている場合off、このAllowNoSlash オプションを有効にして、書き換えルールが無視されないようにすることができます。.htaccessこのオプションを使用すると、必要に応じて、末尾のスラッシュなしでディレクトリに一致するファイル内に書き換えルールを適用できます 。

Apache HTTP サーバー 2.4.0 以降で使用できます。

于 2012-05-06T05:54:31.150 に答える
1
RewriteRule ^/po$ http://new.example.com/po/index_mat.php [R=301,L]

有効にするには、Apache を再起動するか、少なくともグレースフル リスタートを行う必要があるようです。

于 2012-05-07T18:33:53.093 に答える