繁体   English   中英

mod_rewrite-直接从主网址传递变量不起作用

[英]mod_rewrite - passing a variable directly from home url not working

我已经创建了一个规则,该规则允许用户传递这样的变量: somepage.com/database/12345 ,该变量在内部将其更改为somepage.com/database/?db_index=12345 ,并且工作正常。 代码如下:

RewriteBase /
RewriteRule ^database/([0-9]+)/?$ /database/?db_index=$1

现在,我需要做完全一样的事情,但是不需要在变量前传递“ database /”。 因此,用户可以像这样传递变量: somepage.com/12345 它必须是一个附加选项,而不是前一个选项的替代。 我试图这样做:

RewriteRule ^([0-9]+)/?$ /database/?db_index=$1 [L]

但是我只是无法解决这个问题,我也不知道为什么。 上面的附加代码直接插入到先前的工作规则之前。

我会很高兴获得任何帮助和解释,为什么我的方法不起作用。

更新:整个.htaccess文件如下所示:

# Block the include-only files.
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]

# direct url rewrite
RewriteEngine On
RewriteBase /
RewriteRule ^([0-9]+)/?$ /database/?db_index=$1 [L]
RewriteRule ^database/([0-9]+)/?$ /database/?db_index=$1

# 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]
</IfModule>

# END WordPress

您的样子对我来说很好,但是尝试: RewriteRule ^/?([0-9]+)/?$ /database/?db_index=$1 [R=301]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM