前言
我正在尝试为个人资料页面重写 URL。我所有的应用程序页面都有一个.html
扩展名,所以我试图只匹配字母、数字、-
. 和.
.
所以这些是有效的
site.com/steve
site.com/steve-robbins
site.com/steve.robbins
但这些不会
site.com/steve.html
site.com/steve-robbins.php
假设我有一个检查,以便自定义 URL 没有.html
或.php
最后没有。
问题
我目前正在使用它,但它不起作用
RewriteRule ^([a-zA-Z0-9\.-]+)$ profile.php?url=$1 [L]
它应该设置url
为steve
,但它设置为profile.php
我究竟做错了什么?
我的完整.htaccess
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^(.*) http://www.%{HTTP_HOST}/$1 [R=301]
#
# LOGIN
#
RewriteRule ^([a-z0-9]{255})/activate\.html$ login.php?activate=$1 [L]
RewriteRule ^logout\.html$ login.php?logout [L]
#
# SETTINGS
#
RewriteRule ^change-([a-z]+)\.html$ account-settings.php?$1 [L]
RewriteRule ^([a-zA-Z0-9\.-]+)$ profile.php?url=$1 [L]
# SEO friendly URLs
RewriteRule ^([a-zA-Z0-9-_.]+)\.html$ $1.php [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([a-zA-Z0-9-_.]+)\.php
RewriteRule ^([a-zA-Z0-9-_.]+)\.php$ $1.html [R=301]