我正在尝试将.htaccess映射到
/books
或/books/
或/books/<url_slug>
:
Options All -Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ $1 [R=301,L]
# Map /books/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^books$ book.php [NC,L,QSA]
结果:
book.php:
<?php
echo '<h1>Books</h1>';
?>
你只是让你的生活变得更加复杂。
一般建议是避免使用 url 重写来指定路径。相反,你应该有类似的东西:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /index.php [L,QSA]
并在 PHP 端使用
$_SERVER['REQUEST_URI']
来路由来电。