我的问题是这两个网址的行为方式相同:
example.com/foo
example.com//////foo
他们都获取请求的页面“foo”并加载来自db的内容。 但我不喜欢这个。
所以这是我的htaccess:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
我的路线很简单:
Route::get('/', 'PageController@index');
Route::get('/{slug}', 'PageController@show')->where('slug', '[\-_A-Za-z0-9]+');
在哪里可以将第二个设置为404? .htacces 或路由中的问题是什么?
答案 0 :(得分:1)
似乎是Laravel中的问题,但您可以通过向.htaccess添加规则来重定向到您喜欢的任何地方。假设您有一条路线/errors/404
:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/{2,} [NC]
RewriteRule ^ /errors/404 [L,R=301]
修改强>
刚刚在laravel / framework中发布了一个问题,看看核心对此的看法:https://github.com/laravel/framework/issues/3608。