Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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
Regex 使用htaccess重写包含句点符号的URL_Regex_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Regex 使用htaccess重写包含句点符号的URL

Regex 使用htaccess重写包含句点符号的URL,regex,apache,.htaccess,mod-rewrite,Regex,Apache,.htaccess,Mod Rewrite,您好,我正在尝试将我的urlwww.example.com/user.php?user=user.nameaswww.example.com/user.name 但是我收到了一条错误信息,我想这个点把事情搞砸了。。这是我的规则 RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?user=$1 谢谢改用这个模式:^([a-zA-Z0-9\\\\\-\.]+)$ 改用此模式:^([a-zA-Z0-9\\\\-\.]+)$ 我认为应该这样做: RewriteRule ^

您好,我正在尝试将我的url
www.example.com/user.php?user=user.name
as
www.example.com/user.name

但是我收到了一条错误信息,我想这个点把事情搞砸了。。这是我的规则

RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?user=$1

谢谢

改用这个模式:
^([a-zA-Z0-9\\\\\-\.]+)$


改用此模式:
^([a-zA-Z0-9\\\\-\.]+)$


我认为应该这样做:

RewriteRule ^([a-zA-Z0-9_\-.]+)$ user.php?user=$1
(刚刚在可能的字符列表中添加了点并转义了破折号)

另外,不要忘了预先放置一个
RewriteCond
,以避免无限循环。比如:

RewriteCond %{REQUEST_FILENAME} !^user\.php$

注意,这假设您没有名为user.php;)的用户

我认为这应该行得通:

RewriteRule ^([a-zA-Z0-9_\-.]+)$ user.php?user=$1
(刚刚在可能的字符列表中添加了点并转义了破折号)

另外,不要忘了预先放置一个
RewriteCond
,以避免无限循环。比如:

RewriteCond %{REQUEST_FILENAME} !^user\.php$
注意,这假设您没有名为user.php;)的用户

使用此重写规则:

# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-f
# If the request is not for a valid link
RewriteCond %{REQUEST_FILENAME} !-l
# forward to user.php in a Query parameter user
RewriteRule ^([a-z0-9_.-]+)$ user.php?user=$1 [L,NC,QSA]
如果不使用这些重写条件行,则即使是
style.css
site.js
favicon.ico
等文件也将转发到
user.php
,并且不会在浏览器中呈现。

使用此重写规则:

# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-f
# If the request is not for a valid link
RewriteCond %{REQUEST_FILENAME} !-l
# forward to user.php in a Query parameter user
RewriteRule ^([a-z0-9_.-]+)$ user.php?user=$1 [L,NC,QSA]

如果不使用这些重写条件行,则即使是
style.css
site.js
favicon.ico
等文件也会转发到
user.php
,并且不会在浏览器中呈现。

您需要先设置
RewriteCond
您需要设置
RewriteCond
first@anubhava太棒了,伙计。谢谢您给出的规则对于理解htaccess如何正常工作非常有用。生命和时间节约回答。@anubhava真棒,伙计。谢谢您给出的规则对于理解htaccess如何正常工作非常有用。生活和时间节省的答案。