Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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
Php 在url中使用连字符时,清除url不起作用_Php_.htaccess - Fatal编程技术网

Php 在url中使用连字符时,清除url不起作用

Php 在url中使用连字符时,清除url不起作用,php,.htaccess,Php,.htaccess,我正在开发一个web应用程序,用户可以创建他们的个人资料并查看他们,因此当他们创建帐户时,我会将他们的用户名存储在slug表中,例如,如果名称为“Dan Jose”,slug将存储为Dan Jose。当用户访问url例如index.php/Dan-Jose时,他/她可以看到配置文件。 但当我把连字符放进去时,它会重定向到404。 当我将slug改为Dan并输入URL时,它会显示正确的配置文件 这是我的.htaccess文件 RewriteEngine On RewriteCond %{REQU

我正在开发一个web应用程序,用户可以创建他们的个人资料并查看他们,因此当他们创建帐户时,我会将他们的用户名存储在slug表中,例如,如果名称为“Dan Jose”,slug将存储为Dan Jose。当用户访问url例如index.php/Dan-Jose时,他/她可以看到配置文件。 但当我把连字符放进去时,它会重定向到404。 当我将slug改为Dan并输入URL时,它会显示正确的配置文件

这是我的.htaccess文件

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php

RewriteRule ^([a-z]+)$ index.php?profile=$1 [NC]

# Return 404 if original request is .php
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
RewriteRule .* - [L,R=404]

ErrorDocument 404 http://localhost/application/404

您应该使用以下选项:

RewriteRule ^([a-zA-Z0-9\-\_]+)$ index.php?profile=$1 [NC]

是因为这个吗<代码>^([a-z]+)$?我该如何解决这个问题,对不起,我在Regex和htaccess方面很弱
RewriteRule ^([a-zA-Z0-9\-\_]+)$ index.php?profile=$1 [NC]