通过重写从 url 中删除 /views/
Remove /views/ from url with rewrite
我正在尝试学习如何使用 htaccess 重写,但我就是无法掌握它。我要做的是制作以下网址:
mysite.com/
mysite.com/views/clients
mysite.com/views/projects
mysite.com/views/estimates
...看起来像这样:
mysite.com/
mysite.com/clients
mysite.com/projects
mysite.com/estimates
应该够简单了吧。但我就是做不到。
假设您应用中的 URL 已经是 /clients
的形式,而不是 /views/clients
,然后在文档根目录的 .htaccess 文件中尝试以下操作:
RewriteEngine On
# Remove "views" from all (typed) URLs with external redirect
RewriteCond %{THE_REQUEST} /views/([^\ ]*)
RewriteRule .* /%1 [R,L]
# Internally rewrite specific requests back to /views
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(clients|projects|estimates)/(.*) /views// [L]
一旦您对它的工作感到满意,然后将 R
(临时)重定向更改为 R=301
(永久)。
这会在重定向前检查 THE_REQUEST
以防止重定向循环。
我正在尝试学习如何使用 htaccess 重写,但我就是无法掌握它。我要做的是制作以下网址:
mysite.com/
mysite.com/views/clients
mysite.com/views/projects
mysite.com/views/estimates
...看起来像这样:
mysite.com/
mysite.com/clients
mysite.com/projects
mysite.com/estimates
应该够简单了吧。但我就是做不到。
假设您应用中的 URL 已经是 /clients
的形式,而不是 /views/clients
,然后在文档根目录的 .htaccess 文件中尝试以下操作:
RewriteEngine On
# Remove "views" from all (typed) URLs with external redirect
RewriteCond %{THE_REQUEST} /views/([^\ ]*)
RewriteRule .* /%1 [R,L]
# Internally rewrite specific requests back to /views
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(clients|projects|estimates)/(.*) /views// [L]
一旦您对它的工作感到满意,然后将 R
(临时)重定向更改为 R=301
(永久)。
这会在重定向前检查 THE_REQUEST
以防止重定向循环。