需要.htaccess中的文件扩展名

时间:2017-05-11 14:19:13

标签: php apache .htaccess mod-rewrite

我的网站正在将mywebsite.com/news重定向到mywebsite.com/news.php,但我不想要它 我需要它将mywebsite.com/news重定向到mywebsite.com/index.php?param=news
我更改了我的.htaccess文件,该文件可以正常使用其他单词,如下所示:
mywebsite.com/hello重定向到:mywebsite.com/index.php?param=hello
我的根文件夹中有news.php个文件,但我不希望mywebsite.com/news重定向到mywebsite.com/news.php
我希望你明白我的意思...
这是我的.htaccess文件:

Options -Indexes

# pass the default character set
AddDefaultCharset utf-8

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^([\s\S]+)$ index.php?param=$1 [L,QSA,NC,NE]

我应该做些什么改变才能解决这个问题? 任何帮助,评论和建议都表示赞赏。

1 个答案:

答案 0 :(得分:0)

将您的Options行更改为:

Options +FollowSymLinks -MultiViews
  

MultiViews的效果如下:如果服务器收到了   请求/ some / dir / foo,如果/ some / dir启用了MultiViews,并且   / some / dir / foo不存在,然后服务器读取目录   寻找名为foo。*的文件,并有效地伪造一个类型地图   它命名所有这些文件,为它们分配相同的媒体类型和   如果客户要求其中一个,它将具有内容编码   他们的名字。然后它选择与客户的最佳匹配   要求。   https://httpd.apache.org/docs/current/content-negotiation.html

您还可以使用以下命令删除.php扩展名

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301,L]