1

私の.htaccessはで始まります

   RewriteEngine on
   RewriteBase /

(RewriteBaseなしでも試しました...)

以下の書き換えルールを全て試してURLを書き換えてみた

index.php?page=ニュース

/ブログ

  • RewriteRule ^/?([-A-Za-z0-9]+)/([-A-Za-z0-9]+)/blog$ index.php?page=$1 [L]
  • RewriteRule ^([^/]*)/blog$ /sites/blog/index.php?page=$1 [L]
  • RewriteRule ([a-zA-z]+)/([a-zA-z]+)/blog$ index.php?page=$1 [L]

何も機能しません - エラーはありません。Mod_rewrite がインストールされ、機能しています。.htaccess で何かを変更するたびに、Apache と MySQL を再起動しました。

また、次のような URL を変更したい... index.php?page=single_news&category=release&id=9&headline=Beastie%20Boys%20III

...に: blog/release/9​​-Beastie-Boys-III

迷っています。あなたが私を助けてくれることを願っています。

4

3 に答える 3

2

まず、.htaccess とその他のファイル (プロジェクト全体) を、稼働中の準備ができているホスティング サーバーにアップロードします。そして、書き換えが正常に機能するかどうかを確認してください。これにより、これが .htaccess または XAMPP 自体に問題がある場合に通知されます。ファイルがインターネット ホスティングにアップロードされた後、XAMPP の下で .htaccess をローカルで使用する際に多くの奇妙な問題が発生しました。

たとえば、ローカルで .htaccess を使用して自動化を行っていません。正しいログインとパスワードを入力した直後に、あなたが言及したのとまったく同じエラー メッセージが表示されるからです。私としては、この問題は、.htaccess コンテンツの間違いではなく、XAMPP によって行われた .htaccess の誤った解釈に純粋に関連していると確信しています (すべてが運用サーバーでは魅力的に機能するため)。

私は解決策を見つけるのに(あまりにも)多くの時間を無駄にし、それを残しました。現時点では、ローカルで開発している場合、「.htaccess」の名前を「htaccess」に変更しているため、XAMPP (Apache オンボード) によって無視され、本番サーバーにファイルをデプロイする場合にのみ再度有効にします。このアプローチは専門的ではないかもしれませんが、多くの時間とストレスを節約できました! :]

一方、ホスティングも同じ症状で失敗する場合は、これは XAMPP 関連の問題ではなく、構文に問題があることがわかります。

StackOverflow.com で報告された同様の問題については、こちらをご覧ください。(私が思うに) 原因はあなたの問題と同じです。

于 2012-06-29T09:29:15.550 に答える
2

http://www.domain.tld/index.php?page=blogリンクを からに変更するソリューションhttp://www.domain.tld/blogは次のとおりです。

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^\w+$ index.php?page=$0 [L]
RewriteCond %{THE_REQUEST} index\.php
RewriteCond %{QUERY_STRING} ^page=(\w+)$
RewriteRule ^index\.php$ /%1? [R=301,L]

および次のようなリンクの場合:http://www.domain.tld/index.php?page=single_news&id=1&headline=This%20Is%20A%Headline

解決策は次のとおりです。

RewriteRule ^blog/(\d+)-([\w-]+)$ index.php?page=single_news&id=$1&headline=$2

このコードを使用すると、リンクは次のようになります。http://www.domain.tld/blog/2-this-is-a-headline

于 2012-10-27T13:10:39.020 に答える
1

最初の質問については、これを試してください。

RewriteEngine on
RewriteRule ^/blog$ /index.php?page=news
于 2012-07-27T15:54:54.987 に答える