私はubuntu LAMPを使用しており、mod_rewriteを使用して次のようなURLを変換しようとしています:
- site/XXX から site/XXX.php および
- site/XXX-YYY から site/XXX.php?sub1=YYY
私はこの書き換えルールを使用しました:
RewriteRule ^([a-zA-Z0-9]+)$ ./$1.php
RewriteRule ^([a-zA-Z0-9]+)-([a-zA-Z0-9]+)$ ./$1.php?sub1=$2
私のOSXのローカルでは正常に動作します.とにかく、ubuntuサーバーに.htaccessをアップロードすると、site/testを呼び出してsite/test.phpに到達できませんが、404を取得します.Mod_rewriteは機能しています.実際、404ページは同じ .htaccess に設定して動作します。ローカルでは、これをフォルダーで使用しました: localhost/myfolder/.... リモートでは、サブドメインのルートを使用しています: app.sitename.com/....
誰かが私を助けることができますか?
これは完全なコードです:
RewriteEngine On
RewriteRule ^altro&(.+)? ./altro.php?$1 [L,QSA,NC]
RewriteRule ^([a-zA-Z0-9]+)$ ./$1.php [L,QSA,NC]
RewriteRule ^([a-zA-Z0-9]+)-([a-zA-Z0-9]+)$ ./$1.php?sub1=$2
RewriteRule ^([a-zA-Z0-9]+)-([a-zA-Z0-9]+)-([a-zA-Z0-9]+)$ ./$1.php?sub1=$2&sub2=$3
RewriteRule ^([a-zA-Z0-9]+)-([a-zA-Z0-9]+)-([a-zA-Z0-9]+)-([a-zA-Z0-9]+)$ ./$1.php?sub1=$2&sub2=$3&sub3=$4
RewriteRule ^([a-z]+)-([a-z]+)-([0-9]+)-([a-zA-Z0-9_]+).([a-zA-Z]+)$ ./server/php/files/$1/$2/$3/$4.$5
最初のディレクティブが機能しています! 実際、site/altro&code は altro.php?code を開きます