我试图通过url传递变量而不包括?var1 = test但是用/ test替换了。我有以下代码:
$pathinfo = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : $_SERVER['REDIRECT_URL'];
$params = preg_split('|/|', $pathinfo, -1, PREG_SPLIT_NO_EMPTY);
print_r($params);
这个问题是,如果我把它放在index.php文件中,我必须包含文件名。
我得到了什么: http://example.com/index.php/test
我想要的: http://example.com/test
我该怎么办?
答案 0 :(得分:2)
在根文件夹中添加.htaccess文件并粘贴此代码
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
确保启用mod_rewrite
答案 1 :(得分:0)
What should I do?
使用mod_rewrite和.htaccess重写规则。您的规则可能如下所示:
(来自Wordpress的例子):
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f # Existing File
RewriteCond %{REQUEST_FILENAME} !-d # Existing Directory
RewriteRule . /index.php [L]
答案 2 :(得分:0)
尝试使用以下内容在您的webroot中创建名为.htaccess
的文件:
<IfModule mod_rewrite.c>
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>
还要确保启用了modrewrite。