Apache 用于打开其他页面的重写规则
我被一些Apache 用于打开其他页面的重写规则,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我被一些.htaccess规则困住了 我得到了/module/slug页面。当我键入slug时,我想查看/module/slug/的内容,但不想重定向到此页面。可能吗?我尝试过这个规则,但没有成功: RewriteRule ^slug/$ /module/slug/ [L] 我的.htaccess内容: # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^ind
.htaccess
规则困住了
我得到了/module/slug
页面。当我键入slug
时,我想查看/module/slug/
的内容,但不想重定向到此页面。可能吗?我尝试过这个规则,但没有成功:
RewriteRule ^slug/$ /module/slug/ [L]
我的.htaccess
内容:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^calculator/$ /sample-page/ [R=301,L]
</IfModule>
# END WordPress
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
重写规则^calculator/$/示例页/[R=301,L]
#结束WordPress
发生这种情况是因为您没有告诉Apache重定向(R=301
)
添加重定向标志R
,它应该可以工作。还要确保:
您已正确设置RewriteBase
文件前面没有与同一URL匹配的任何其他规则
不幸的是,它不起作用。添加我的.htaccesscontent@user3013494我在回答中增加了一些细节。你的规则来得太晚了,需要比WordPress规则更早设置。此规则将我重定向到页面/module/slug/,但我想保留url/slug,但显示页面/module/slug/@user3013494的内容。在这种情况下,这取决于/module/slug/
上的页面如何计算url以选择其内容。然后.htaccess可能是错误的工具。这是两个不同的页面,比如index.php?p=111和index.php?p=222“content of/module/slug/”的意思。目录列表?
RewriteEngine On
RewriteBase /
RewriteRule ^slug/$ /module/slug/ [R=301,L]