Php .HT5变量的访问问题

Php .HT5变量的访问问题,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,以下是我的.htaccess文件 AddDefaultCharset utf-8 RewriteEngine On RewriteCond %{REQUEST_FILENAME} -f RewriteRule .* - [L] DirectoryIndex index.php RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3&p=$4&q=$5 [

以下是我的
.htaccess
文件

AddDefaultCharset utf-8
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .* - [L]

DirectoryIndex index.php
RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3&p=$4&q=$5 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3&p=$4 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)?$ index\.php?page=$1&s=$2 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/?$ index\.php?page=$1 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})?$ index\.php?page=$1 [L]

ErrorDocument 404 /404
当我这样做的时候

ehco "<pre>";
print_r($_REQUEST);
echo "</pre>";
但如果超过3个参数,则表示未找到。
.htaccess
对于以下URL工作正常 myhost/mysite/page/s/o 但不是为了
myhost/page/s/o/p

对代码的一些更改:

AddDefaultCharset utf-8
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

DirectoryIndex index.php

RewriteRule ^(\w{3,20})/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ index\.php?page=$1&s=$2&o=$3&p=$4&q=$5 [QSA,L]

RewriteRule ^(\w{3,20})/([^/]+)/([^/]+)/([^/]+)/?$ index\.php?page=$1&s=$2&o=$3&p=$4 [QSA,L]

RewriteRule ^(\w{3,20})/([^/]+)/([^/]+)/?$ index\.php?page=$1&s=$2&o=$3 [QSA,L]

RewriteRule ^(\w{3,20})/([^/]+)/?$ index\.php?page=$1&s=$2 [QSA,L]

RewriteRule ^(\w{3,20})/?$ index\.php?page=$1 [QSA,L]

ErrorDocument 404 /404

您正确的完整.htaccess可以是:


你的意思是在第一条重写规则下面加上这三行吗?
AddDefaultCharset utf-8
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .* - [L]

DirectoryIndex index.php
RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)/([^/]+)/([^/]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3&p=$4&q=$5 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)/([^/]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3&p=$4 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)?$ index\.php?page=$1&s=$2 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/?$ index\.php?page=$1 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})?$ index\.php?page=$1 [L]

ErrorDocument 404 /404
AddDefaultCharset utf-8
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

DirectoryIndex index.php

RewriteRule ^(\w{3,20})/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ index\.php?page=$1&s=$2&o=$3&p=$4&q=$5 [QSA,L]

RewriteRule ^(\w{3,20})/([^/]+)/([^/]+)/([^/]+)/?$ index\.php?page=$1&s=$2&o=$3&p=$4 [QSA,L]

RewriteRule ^(\w{3,20})/([^/]+)/([^/]+)/?$ index\.php?page=$1&s=$2&o=$3 [QSA,L]

RewriteRule ^(\w{3,20})/([^/]+)/?$ index\.php?page=$1&s=$2 [QSA,L]

RewriteRule ^(\w{3,20})/?$ index\.php?page=$1 [QSA,L]

ErrorDocument 404 /404