网址正在附加正斜杠' /'查询字符串之前

时间:2017-01-07 09:43:23

标签: php laravel url laravel-5 routes

我遇到一个奇怪的问题,当我尝试点击网址时

www.mywebsite.com/walkthrough?hostid=12345

它会自动附加' /'前''在网址中。 像

www.mywebsite.com/walkthrough/?hostid=12345

因此我无法获得参数hostid。

路由

 Route::get('/walkthrough', ['uses' => 'WalkthroughController@index']);   

htaccess的

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>
Options -Indexes
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L] 
#php_value allow_url_fopen 0
#php_value allow_url_include 0
</IfModule>

为什么会这样?任何帮助都非常感谢。谢谢。

2 个答案:

答案 0 :(得分:0)

这很可能是.htaccess问题。虽然我很惊讶你仍然无法取出url参数,因为如果/存在,它应该没什么区别。

典型的laravel htaccess文件应如下所示:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

修改

根据评论中的讨论,似乎public目录中名为walkthrough的冲突目录导致了问题。

如果没有匹配的目录(正确的话),Laravel将仅删除尾随/

虽然尾随/没有任何害处。

答案 1 :(得分:0)

尝试定义laravel文档中提到的这样的路由。

Route::get('walkthrough', 'WalkthroughController@index'); 

参考basic routing