我想更改目录/房间以显示SEF的名称/装备,而无需在我们的脚本中更改目录名称。注意:目录“gear”不存在。
例如我想改变: 网站/私营/间/新 说 站点/私人/齿轮/新
我目前的htaccess说:
RewriteEngine ON
RewriteCond %{THE_REQUEST} \ /(.*)/rooms([^\ ]+)? [NC]
RewriteRule ^ /%1/gear%2 [L,R]
RewriteRule ^(.*)/gear(/.*)?$ /$1/rooms$2 [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php?/$0 [PT,L]
它完全取决于我想要site.com/gear/new的目录 但是,我收到404错误。我相信因为那里没有内容?我甚至尝试复制文件夹/房间并重命名它/齿轮,我仍然得到404.
当代码是:
RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php?/$0 [PT,L]
#RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]
它会将您带到site / private / rooms / new,并显示显示/index.php的内容 你认为这可能是造成问题的原因吗?它不会显示site.com/gear/new的原因可能是因为它没有显示/index.php?
答案 0 :(得分:0)
试试这个
RewriteEngine ON
RewriteCond %{THE_REQUEST} \ /(.*)/rooms([^\ ]+)? [NC]
RewriteRule ^ /%1/gear%2 [L,R]
RewriteRule ^(.*)/gear(/.*)?$ /$1/rooms$2 [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php?/$0 [PT,L]
您的规则不匹配,因为
RewriteRule ^/rooms(.*)?$ /gear$1 [R]
RewriteRule
中使用.htaccess
时)。因此/rooms
永远不会匹配。private
开头。它们在rooms
和gear
上匹配,作为第一个路径目录。