我知道这是一个问题很多,我已经看过他们所有尝试了这么多不同的变化,但它不会工作,我不知道我做错了什么。 很久以前我创建了一个.htaccess文件,以便它指向我的404错误页面,这对我来说很好但是我想现在重写我网站上的网址,因为有很多帖子和它变得凌乱包含url中的所有变量。 我有一个名为viewpost.php的页面,它传递了1个变量(还有其他页面,但这是示例)viewpost传递1变量,因此它变为/viewpost.php?ID=10
RewriteEngine on
RewriteRule viewpost-ID-(.*)\.htm$ viewpost.php?ID=$1
我将这两行添加到htaccess文件中。我尝试从文件中删除404代码并保存它,但它也没有使它工作。除了将此代码添加到.htaccess文件之外,还有什么我需要做的吗? 该网站目前正在atspace上托管
Hosting OS Proprietary *nix
Perl version 5.8.4
MySQL version 5.1
Perl path /usr/bin/perl
Sendmail path /usr/local/bin/sendmail
CGI-BIN path not required (You can run CGI, Perl scripts from any domain/subdomain folder)
Perl Modules 2900+ installed modules (Click here to view the full list)
PHP Version 5.2.17 Change
PHP.INI Edit
PHP Info [View PHP5.2.17 Info] [View PHP5.3.6 Info]
Directory Protection Enabled
这是在托管设置页面上写的内容。我不知道能够重写网址需要什么,但因为.htaccess文件目前正在为我的404页面工作,假设其设置正常吗?
答案 0 :(得分:1)
.htaccess
文件中的某些其他规则可能会覆盖您的规则,或者您可能遇到区分大小写的问题。在[NC,QSA,L]
行的末尾添加RewriteRule
。
RewriteEngine On
RewriteRule viewpost-ID-(.*)\.htm /viewpost.php?ID=$1 [NC,QSA,L]
NC
忽略这种情况,QSA
将任何额外的查询字符串参数附加到目标网址,L
告诉Apache停止处理更多RewriteRule
条目(如果匹配的话)当前的网址。