1

public_html内に「journals」フォルダがあります。リンクは次のようになります。

site/journals/index.php/journal1site/journals/index.php/journal2など(journal1、journal2は単なるイラストです。テクノロジー、アートなどの可能性があります)

私は(Jonの助けを借りて).htaccessを持っています。これは。site/journals/index.php/journal1として表示されsite/index.php/journal1ます。

しかし、私はまだアクセス/表示することができます- site/journals/index.php/journal1

無効にしたいのですが、表示されている必要があります。どうすればよいか教えてくださいsite/journals/index.php/journal1site/index.php/journal1

詳細については、こちらを確認してください。

これがroot(/)フォルダにある既存の.htaccessです

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/sunder
RewriteRule ^index\.php(.*)$ /sunder/index.php$1? [L]
</IfModule>
4

2 に答える 2

0

ジョンがあなたに与えた規則は正しくありません。どれどれ:

必要なのは、example.com/index.php/journal1を指すようにURLを書き換えるルール/journals/index.php/journal1です。したがって、マッチングや書き換えをやり過ぎないように注意する必要があります。

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteRule ^journals/(.*)$ http://example.com/$1 [R=301,L]

    RewriteRule ^index\.php/(.*)$ /journals/index.php/$1 [L]
</IfModule>

書き換えられたURLの例:

example.com/index.php/journal2 => /home/bane/htdocs/journals/index.php/journal2

example.com/index.php/foo/bar  => /home/bane/htdocs/journals/index.php/foo/bar
于 2012-10-13T22:05:48.840 に答える
0

site / journals / index.php / journal1を無効にしたいのですが、site / index.php/journal1のみが表示されるはずです。どうすればよいか教えてください。

古いURLへのアクセスを(内部的に書き換えながら)無効にしたいので、単にURIではなく、実際のリクエストと照合する必要があります。URIと照合してリダイレクトを行うと、リダイレクトは内部で書き換えられ、他のルールと一致して再度リダイレクトされるため、ブラウザはページが正しくリダイレ​​クトされていないと文句を言います。

(質問で)すでに持っているルールのすぐ下にRewriteEngine Onこれらのルールを追加してみてください。

RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ /sunder/([^\ ]+)
RewriteRule ^ /%2 [L,R=301]

これは、実際のリクエストがで始まるものに対するもので/sunder/あり、ブラウザを削除したURLにリダイレクトする場合にのみ適用されます。

于 2012-10-14T03:42:43.443 に答える