0

から index.php?URL=pages/the-page.php単純にthe-page. 問題は、直接含まれていないページpages(つまり、pages/sub) が要求されたときに、.css と .js をリダイレクトすることです。これは良くありません。

私が達成しようとしているのはこれです:

  • フォルダー内のファイルのみを書き換えますが、そのpagesすべてのサブディレクトリを含めます。

files重要なことは、フォルダーの URL を決して書き換えないことです。

コードは次のとおりです。

Options +FollowSymlinks
RewriteEngine on
# prevent endless loop
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]

# redirect the client
RewriteCond %{QUERY_STRING} URL=pages/(.+?)\.php
RewriteRule ^index\.php$ /gr/%1? [R,L]

# exclude rewriting all files located in /gr/files
RewriteCond %{REQUEST_URI} !^/gr/files/
# rewrite to real content
RewriteRule ^.*$ /gr/index.php?URL=pages/$0.php [L]

私はこのコードとの戦いに数え切れないほどの時間を費やしてきました。わずかな変更でも 404 または 500 エラーがスローされます。

また、外部リンクを削除して、適切なアドレスではなく .com/www にすることも問題です。

4

1 に答える 1

1

CSS とスクリプトの mod_rewrite ルールをいじってはいけません。これは、相対 URI の問題のように思えます。リンクを絶対 URI に変更します。

から:

<link rel="stylesheet" href="style.css" type="text/css">

に:

<link rel="stylesheet" href="/style.css" type="text/css">

または「style.css」への絶対パスが何であれ。

すべてのリンクを変更したくない場合は、ページのヘッダーに URI ベースを追加します。

<base href="/">
于 2013-04-11T00:34:33.557 に答える