0

これは非常に人気のあるトピックであり、これが私の要求に最も近いものであることは知っていますが、問題は解決しません: PHP で書き換えルールを作成するにはどうすればよいですか?

www.example.com/hello実際にこのスクリプトをロードしたいと思います: www.example.com/hello.php, aka: www.example.com/*to www.example.com/*.php.

さらに、vars を渡したいと思うかもしれませんが、常に最初のスラッシュをスクリプト名にし、その後は vars にする必要があります。たとえば、
www.example.com/world/africa
実際にこのスクリプトを実行する
www.example.com/world.php?var1=africa
か、次のように
www.example.com/beach/us/michigan
実行します。
www.example.com/beach.php?var1=us&var2=michigan

コントローラーは関与していないので、そのままにしておきたいと思います。私は最大約10ページの非常に小さなサイトに取り組んでいます。

私は多くの反復を試みましたが、作業に最も近いのは www.example.com/dir/helloロードwww.example.com/hello.php することですが、エンドユーザーが見る URL に余分なディレクトリは必要ありません。私はこのルールでそれを達成しました:
RewriteRule ^dir/(.*)$ /$1

これらは、.htaccess ファイルの先頭の documentRoot で有効にしています。

RewriteEngine on  
RewriteBase /   

条件をコメントアウトしました。現在、これらのどれも機能していません (Apache2)。以下のリストでは、スラッシュを使用したり、使用しないなど、多くのバリエーションを試しました。何かアイデアはありますか?

#RewriteCond %{REQUEST_FILENAME}.php -f  
#RewriteRule ^(.*)$  $1.php  
#RewriteRule .* $0.php  
#RewriteCond %{DOCUMENT_ROOT}/$0.php -f  
#RewriteRule .* /$0.php [L]  
#RewriteRule ^/([^.]+)$ /$1.php  
#RewriteRule ^([^/]+).*$ $1.php  
#Rewritstrong texteCond %{REQUEST_FILENAME} !-f  
#RewriteCond %{REQUEST_FILENAME} !-d  
#RewriteRule ^(.*)$ index.php?page=$1  
#RewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ index.php?page=$1 [L,QSA]  
# this works but shows 'dir' in URI: RewriteRule ^dir/(.*)$ /$1.php  
#RewriteRule (^|/)([^.]+)$ $2.php [QSA]  
#RewriteRule (.*) /$1.php  
#RewriteRule ^([^/]+)/$ /$1.php    
4

0 に答える 0