1

/start を /start/index.html にリダイレクトし、他のすべて (/anything) を /index.html にリダイレクトする必要があります。

これに対する正しい正規表現の書き直しは何ですか?

ありがとう

4

2 に答える 2

1

書き換え条件が必要です:

RewriteRule ^start/?$ /start/index.html [R]

RewriteCond %{REQUEST_URI} !^/start/?$
RewriteRule ^([a-zA-Z0-9_-]+)/?$ /index.html [R]

[R]フラグに関するこのリンクを考慮してください: https://stackoverflow.com/a/15999177/2007055

于 2013-05-02T08:07:53.277 に答える
1

にリダイレクト/startする必要があり/start/index.html、他のすべて ( /anything )にリダイレクトする必要があります/index.html。これに対する正しい正規表現の書き直しは何ですか?

ルート ディレクトリにある .htaccess ファイルでこれを試すことができます。

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI}  !index\.html      [NC]
RewriteRule ^start/(.*)  /start/index.html?$1 [L,NC,QSA]

ルールでanythingは、クエリとして に渡されindex.php、QSA フラグが存在する場合、着信フラグが追加されます。

anythingパス セグメントとして渡すには、QSA フラグを置き換えて削除します?$1/$1着信クエリは自動的に追加されるため、役に立ちません。

永続的なリダイレクトの場合、[L,NC,QSA] を [R=301,L,NC,QSA] に置き換えます。

于 2013-05-02T09:26:49.107 に答える