1

localhost では問題ありませんが、.htaccess ファイルを 1and1 ホスティング アカウントにアップロードすると壁にぶつかります (内部 500 サーバー エラー)。

更新:問題のあるコードを見つけましたが、壊れている理由や修正方法がわかりません (壊れた行をコメントアウトしました)

 #RewriteRule ^([a-zA-Z_\-/]+)(\/?)$ index.php?p=$1 [R,NC,QSA,L]
  RewriteRule ^([a-zA-Z_/]+)(\/?)$ index.php?p=$1 [R,NC,QSA,L]

.htaccess ファイルの内容:

AddType x-mapp-php5 .php   
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !\.(jpg|jpeg|gif|png|css|js|pl|txt)$
RewriteRule ^([a-zA-Z_\-/]+)(\/?)$ /index.php?p=$1 [L]

最終行 (RewriteRule...) をコメントアウトすると、エラーが発生しなくなりますが、機能するには明らかにこれが必要です。

このファイルは、ローカル マシンで問題なく動作します。少し違うので、そのコードも含めます (違い: フラグ、「/NEP」、および 1 行目)

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !\.(jpg|jpeg|gif|png|css|js|pl|txt)$
RewriteRule ^([a-zA-Z_\-/]+)(\/?)$ /NEP2/index.php?p=$1 [NC,QSA,L]

私が実行しようとしている書き換えのいくつかの例:

  • dev.mydomain.com/services/ => dev.mydomain.com/index.php?p=サービス

  • dev.mydomain.com/quality/control => dev.mydomain.com/index.php?p=quality/control

あなたが与えることができるどんな助け/アドバイスも大歓迎です. 私は本当に一日の終わりまでにこれを機能させる必要があります。

4

1 に答える 1

1

文字セットのハイフン/ダッシュは範囲演算子として機能します(0〜9またはazと考えてください)。途中または最後に配置すると問題が発生する可能性があります。

\文字セットの先頭に移動すると、この問題が回避され、 :でエスケープする必要がなくなります。

[-a-zA-Z_/]
于 2011-10-20T18:22:07.437 に答える