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