1

私は自分のサイトできれいな URL を使用しようとしていますが、htaccess についてはあまり知りませんが、検索した結果、次のようになりました。

RewriteEngine On
RewriteRule ^([a-z]+)\/([0-9]+)\/?$ content.php?action=$1&id=$2 [NC]

私はこれを変更しようとしています:

mysite.com/cms/content.php?action=content&id=80

の中へ:

mysite.com/cms/content/80

しかし、どういうわけか機能せず、空白の画面と 404 エラーが表示されます。

Failed to load resource: the server responded with a status of 404 (Not Found) --in-- /cms/files/plugin/tinymce/tinymce.min.js

404 エラーについて: mystie.com/files/plugin/tinymce/tinymce.min.js から .js ファイルをロードする必要があります -- mystie.com/cms/files/plugin/tinymce/tinymce.min.js ではありません

私のhtaccessファイルはルートフォルダーにあります。私は何か間違ったことをしていますか?

サーバーが私の .htaccess ファイルを読み取っていないと思います。問題を見つけるにはどうすればよいですか?

4

5 に答える 5

0

htaccess がルートにある場合は、必ずサブフォルダーを含める必要があります。このルールを試してください。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^cms/([a-z]+)/([0-9]+)/?$ /cms/content.php?action=$1&id=$2 [NC,L]

また、空白の画面は通常、PHP エラーを意味します。

于 2015-03-09T14:33:56.570 に答える
0

残りの前に URLがあるので、次のよう/cms/に変更する必要があります。RewriteRule

RewriteRule ^cms/([a-z]+)\/([0-9]+)\/?$ content.php?action=$1&id=$2 [NC]

また、一部のサーバー ( nginxや一部のカスタム サーバーなど) では.htaccess が機能せず、 Apacheサーバーでもmod_rewrite無効にできることをご承知おきください。

于 2015-03-09T14:04:16.207 に答える
0

私の推測では、あなたのスクリプトとスタイルは相対 URL 経由でリンクされていると思います。古い URL は/cms/content.phpURI ベースで/cms/あり、相対リンクはすべて の下/cms/に解決されているため、これが必要だと思います。

ただし、リンクを に変更する/cms/content/1234と、URI ベースは になり/cms/content/、すべての相対リンクはこれをベースとして使用します。「コンテンツ」は実際のフォルダーでさえないため、これらのリンクはすべて 404 になり、何も読み込まれません。 CSS コンテンツまたはスクリプトの。

リンクを絶対 URL に変更するか、ページのヘッダー (<head> </head>タグ内)に URI ベースを指定します。

<base href="/cms/" />
于 2015-03-09T14:25:05.203 に答える