0

ほとんどは、リダイレクトとファイル拡張子の削除、または動的 URL 用です。

名前を変更するための単純な静的URLを取得できないという問題

Options +FollowSymlinks
RewriteEngine On
RewriteRule ^fileThathasalongname file.html

私が現在持っているもの'mysite.co.uk/fileThathasalongname.html'

私が欲しいのは'mysite.co.uk/file/' while file = file.html

使用:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteRule ^FileIWantToChange.html FriendlyNamed.html

これを使用すると、複数の選択肢というエラーが表示されます

+++++++++++++++++編集++++++++++++++++++++++++++

人々が見られるように最終バージョンを追加すると思ったので、役立つかもしれません。以下の答えは正しいです。

Options +FollowSymLinks -MultiViews
DirectorySlash Off

RewriteEngine On

RewriteCond %{SCRIPT_FILENAME}/ -d
RewriteCond %{SCRIPT_FILENAME}.html !-f
RewriteRule [^/]$ %{REQUEST_URI}/ [R=301,L]

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+)\.html$ /$1 [R=301,L]

RewriteRule ^FriendlyNamed.html FileIWantToChange.html [L]

RewriteCond %{SCRIPT_FILENAME}.html -f
RewriteRule [^/]$ %{REQUEST_URI}.html [QSA,L]

RewriteCond %{HTTP_HOST} ^www.mysire.co.uk [NC]
RewriteRule ^(.*)$ http://mysite.co.uk/$1 [L,R=301]

すべてが魅力的です!

4

2 に答える 2

2

複数の問題が起こっているのがわかります。まず、ユーザーが入力したフレンドリ URL に対して正規表現が照合されます。そのため、フレンドリ URL とファイル パスを互いに入れ替える必要があります。フレンドリまたは「偽の」名前は左側に表示され、リダイレクト先の URL はサイレントに右側に表示されます。また、ディレクトリ ベースが に設定されていることを確認してください/。最後に、 を追加し[L]て、同じファイル内の何かがパスを書き換えようとした場合に備えて、それを最後のルールにすることをお勧めします。ファイルの場所によっては、他の htaccess ファイルの下の方もチェックされることに注意してください。また、オプション部分を完全にジャンクします。これを試してください:

RewriteBase /
RewriteEngine On
RewriteRule ^FriendlyNamed.html FileIWantToChange.html [L]
于 2013-05-03T17:04:45.557 に答える
0

RewriteRule ^fileThathasalongname.html file.html

于 2013-05-03T11:06:58.690 に答える