RewriteEngine On
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^Download/(.*)/?$ ./downloadit.php?key=$1
RewriteRule ^Buy/(.*)/?$ ./buy.php?key=$1
RewriteRule ^Admin/(.*)/?$ ./admin.php?cmd=$1&key=$2
RewriteRule ^Admin/Edit/(.*)/?$ ./editfile.php?key=$1
我通常不会使用Apaches Rewrite Engine,所以我不确定。
我正在尝试解析的链接是:http://Website.com/~User/Download/Testlicious/
我总共有4个文件,所有这些都是php文件。我想直接重写那些文件
但它一直给我一个404找不到/downloadit.php它在同一个目录中,与其余目录相同。
的 的 * UPDATE * * * 自从在虚拟主机上,Duh。我需要正确设置我的重写基础,DOH
RewriteEngine On
RewriteBase /~GameCenter/
RewriteRule ^Download/(.*)/?$ ./downloadit.php?key=$1 [qsa]
RewriteRule ^Buy/(.*)/?$ /buy.php?key=$1
RewriteRule ^Admin/(.*)/?$ /admin.php?cmd=$1&key=$2
RewriteRule ^Admin/Edit/(.*)/?$ /editfile.php?key=$1
现在一切都现在链接和工作,但问题现在是$ 0 / $ 1 / $ 2不会触发文件中的任何内容。 $ _POST ['key']
中没有任何东西吐出来现在我猜这个问题的第1步已经解决了。但现在进入O_O STEP 2 !!
答案 0 :(得分:0)
您需要为每个规则添加条件,我非常确定。RewriteRule
模式匹配在开头也需要斜杠
我假设4个PHP文件与.htaccess
文件所在的目录相同。
[L]
告诉mod_rewrite
停止解析当前请求的.htaccess
文件:
RewriteEngine On
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^Download/(.*)/?$ /downloadit.php?key=$1 [L]
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^Buy/(.*)/?$ /buy.php?key=$1 [L]
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
# You've only specified one matching group here, so $2 will be blank
RewriteRule ^Admin/(.*)/?$ /admin.php?cmd=$1&key=$2 [L]
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^Admin/Edit/(.*)/?$ /editfile.php?key=$1 [L]