0

アカウントの htaccess ファイルに rewritrule を書き込もうとしてい000webhostますが、それを機能させる方法が見つかりません!

すべてのファイルがルート ディレクトリ (public_html) にアップロードされます。.htaccessファイルも同じディレクトリにあります。

URLアドレスバーに次のようなものが表示されます:domain.com/index.php?city=London

これを変更する必要がありますdomain.com/city/London

htaccessしかし、ファイル経由では何も機能していないようです!

ここに私のhtaccessコードがあります:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /

RewriteRule ^city/([^/]*)$ /index.php?city=$1 [L]
</IfModule>

どんな助けでも素晴らしいでしょう。

4

2 に答える 2

0

適切な「ナイス URL」を取得するには、醜い URL をナイス URL にリダイレクトし、ナイス URL を実際に機能する醜い URL に内部的に書き換える必要があります。すでに内部の書き換えがあります。

Apache 2.3.9 以降では、次のソリューションを使用できます。END-flag は以前のバージョンでは使用できず、使用すると内部サーバー エラーがスローされます。を に変更しRR=301、リダイレクトを永続的にします。ブラウザーは永続的なリダイレクトをキャッシュするため、すべてのリダイレクトと書き換えが必要に応じて機能している場合にのみ、これを行ってください。END フラグは書き換えを完全に停止し、無限ループを防ぎます。

RewriteEngine on
RewriteBase /

RewriteCond %{QUERY_STRING} city=([^&]*)
RewriteRule ^index\.php$ /city/%1? [R,L]

RewriteRule ^city/([^/]*)$ /index.php?city=$1 [END]

以前のバージョンの Apache では、ハックを使用する必要があります。%{THE_REQUEST}URLが書き換えられたときではなく、外部リクエストでのみこのように利用できるため、これは機能します。

RewriteEngine on
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/index\.php\?city=(.*)\s [NC]
RewriteRule ^ city/%1? [R,L]

RewriteRule ^city/([^/]*)$ /index.php?city=$1 [L]

このコンピューターではどちらの RewriteRule もテストできないことに注意してください。ただし、タイプミスはしていないと確信しています。

于 2013-08-09T10:59:42.770 に答える