Cra*_*aig 3 apache .htaccess mod-rewrite url-rewriting
我想要网址:
http://domain.com/category/subcategory/title
Run Code Online (Sandbox Code Playgroud)
指向:
http://domain.com/posts/category/subcategory/title.php
Run Code Online (Sandbox Code Playgroud)
我的 .htaccess 文件如下所示:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} !^.+
#RewriteCond post/%{REQUEST_URI}.php -f
RewriteRule ^(.*)$ post/$1.php [L]
Run Code Online (Sandbox Code Playgroud)
但是,当我取消注释上面的行时,它就不起作用了。
我努力了:
RewriteCond /post/%{REQUEST_URI}.php -f
RewriteCond post/%{REQUEST_URI}.php -f
RewriteCond post%{REQUEST_URI}.php -f
Run Code Online (Sandbox Code Playgroud)
这些都不起作用。我究竟做错了什么?
还有一种简单的方法来调试这些规则吗?比如控制台记录变量之类的?
-f检查需要完整的文件系统路径。您可以使用%{DOCUMENT_ROOT}变量来做到这一点:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{DOCUMENT_ROOT}/post/$1.php -f
RewriteRule ^(.+)$ post/$1.php [L]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17424 次 |
| 最近记录: |