Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 删除点的Htaccess重写规则_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

.htaccess 删除点的Htaccess重写规则

.htaccess 删除点的Htaccess重写规则,.htaccess,mod-rewrite,url-rewriting,.htaccess,Mod Rewrite,Url Rewriting,谢谢你的帮助。我已经试着解决这个问题一个小时了 我有一个Htaccess,可以将/file.html重写为脚本,但决定删除扩展名,结果如下: RewriteEngine On #RewriteRule ^([^/]*)\.html$ /?file=$1 [L] RewriteRule ^([^\.]+)$ /index.php?file=$1 [NC,L] 但是,现在我还需要它处理包含点的文件名,即/file.with.dots,但该规则不允许它 此选项适用于带点但以.html结尾的文件 #R

谢谢你的帮助。我已经试着解决这个问题一个小时了

我有一个Htaccess,可以将/file.html重写为脚本,但决定删除扩展名,结果如下:

RewriteEngine On
#RewriteRule ^([^/]*)\.html$ /?file=$1 [L]
RewriteRule ^([^\.]+)$ /index.php?file=$1 [NC,L]
但是,现在我还需要它处理包含点的文件名,即/file.with.dots,但该规则不允许它

此选项适用于带点但以.html结尾的文件

#RewriteRule ^(.*)\.html$ /index.php?file=$1 [NC]
这会给我一个内部服务器错误

RewriteRule ^([^/]+)$ /index.php?file=$1 [NC,L]

你可以这么做

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/?$ /index.php?file=$1 [NC,L]

让我知道结果

杰克,谢谢你的快速回复,但是带点的文件名仍然不起作用。以前我得到了一个禁止的错误,但现在我得到了404为这些。其余的都可以正常工作。除了此重写规则rewrite rule^.*/$/index.php之外,您是否尝试过使用上述规则?file=$1[NC,L]但是它应该可以工作。我也尝试过该规则,但是,我仍然得到404:状态:HTTP/1.1 404未找到可能是主机问题吗?RewriteCond%{REQUEST_FILENAME}-已重写COND%{REQUEST_FILENAME}-f RewriteRule^.+/?$/index.php?文件=$1[NC,L]RewriteRule^.*/$/index.php?文件=$1[NC,L]RewriteEngine On RewriteCond%{REQUEST_FILENAME}-已重写COND%{REQUEST_FILENAME}-f RewriteRule^.+/?$/index.php?文件=$1[NC,L]RewriteRule^.*/$/index.php?文件=$1[NC,L]是否有办法查看文件显示的内容404?我的意思是显示重定向到的位置,即/index.php?file=XXX谢谢