メモ > サーバ > 各論: プログラミング > mod_rewriteを使う
mod_rewriteを使う
mod_rewriteが機能しなかったり、「No input file specified.」と表示されて動作しなかった場合の対応
サーバ環境によっては、少し書き方を変える必要がある
以下は大抵のサーバで動作する書き方
チュートリアル | levis: PHP Framework
http://refirio.org/levis/manual/tutorial.html#url
DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\.(css|js|png|jpeg|jpg|jpe|gif)$
RewriteRule (.*) index.php/$1
</IfModule>
以下はXServerなどで動作させるための書き方
リライトで「index.php?/$1」とした場合でもPATH_INFOを取得するフォールバックコード - Qiita
https://qiita.com/sounisi5011/items/6681bea157a04acf5a51
SetEnvIf Request_URI ".*" Ngx_Cache_NoCacheMode=off
SetEnvIf Request_URI ".*" Ngx_Cache_StaticMode
DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\.(css|js|png|jpeg|jpg|jpe|gif)$
#RewriteRule (.*) index.php/$1
RewriteRule (.*) index.php?/$1 [QSA,L]
</IfModule>
Advertisement