.htaccess 映射到 /books 或 /books/ 或 /books/<url_slug>

问题描述 投票:0回答:1

我正在尝试将.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]

结果:

enter image description here

book.php:

<?php

echo '<h1>Books</h1>';

?>
php .htaccess
1个回答
0
投票

你只是让你的生活变得更加复杂。

一般建议是避免使用 url 重写来指定路径。相反,你应该有类似的东西:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /index.php [L,QSA]

并在 PHP 端使用

$_SERVER['REQUEST_URI']
来路由来电。

© www.soinside.com 2019 - 2024. All rights reserved.