Apache 友好的URL与.htacces奇怪的响应形式我的网站托管。。。帮助

Apache 友好的URL与.htacces奇怪的响应形式我的网站托管。。。帮助,apache,mod-rewrite,url-rewriting,friendly-url,Apache,Mod Rewrite,Url Rewriting,Friendly Url,我只是想在URL中插入以下内容: http://website.com/pelicula/0221889/ http://website.com/pelicula/0221889/posters/ 这真的是(在后台): 所以我把它放在我的.htaccess文件中: <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^/([^/]+

我只是想在URL中插入以下内容:

http://website.com/pelicula/0221889/
http://website.com/pelicula/0221889/posters/
这真的是(在后台):

所以我把它放在我的.htaccess文件中:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^/([^/]+)/([^/]+)/?([^/]*)/?$ index.php?ctrl=$1&id=$2&tab=$3 [QSA,L]
</IfModule>

重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写规则^/([^/]+)/([^/]+)/?([^/]*)/?$index.php?ctrl=$1&id=$2&tab=$3[QSA,L]
但它在我的网络主机中不起作用,所以我向他们的支持团队寻求帮助,他们的回答是:

<IfModule mod_rewrite.c>
RewriteEngine On
# If subdomain www exists, remove it first
#RewriteCond %{HTTP_HOST} ^www.([^.]+.[^.]+)$ [NC]
#RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

# If requested resource does not exist as a file
RewriteCond %{REQUEST_FILENAME} !-f
# and does not end with a period followed by a filetype
RewriteCond %{REQUEST_URI} !..+$
# and does not end with a slash
RewriteCond %{REQUEST_URI} !/$
# then add a trailing slash and redirect
RewriteRule (.*) $1/ [R=301,L]
</IfModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

重新启动发动机
#如果子域www存在,请先将其删除
#重写cond%{HTTP_HOST}^www.([^.]+.[^.]+)$[NC]
#重写规则^(.*)$http://%1/$1[R=301,L]
#如果请求的资源不作为文件存在
重写cond%{REQUEST_FILENAME}-F
#并且不会以句点后跟文件类型结束
重写条件%{REQUEST_URI}+$
#并且不会以斜杠结束
重写cond%{REQUEST_URI}/$
#然后添加尾部斜杠并重定向
重写规则(.*)$1/[R=301,L]
#开始WordPress
重新启动发动机
重写基/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress

很明显,它没有按预期工作,所以我只想知道如何解决这个问题!!!我对mod_重写一无所知,我真的需要它完美地工作。。。我快发疯了我不知道问题出在哪里。。请帮忙

看来支持人员刚刚向您发送了他们在知识库中找到的第一个URL重写代码作为示例。这很正常:世界上没有任何托管服务可以提供免费咨询服务:)

我建议你尽量保持简单:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^/]+)/(\d+)/([^/]+)/?$ index.php?ctrl=$1&id=$2&tab=$3 [QSA,L]
    RewriteRule ^([^/]+)/(\d+)/?$         index.php?ctrl=$1&id=$2 [QSA,L]
    RewriteRule ^([^/]+)/?$               index.php?ctrl=$1 [QSA,L]
</IfModule>

重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写规则^([^/]+)/(\d+)/([^/]+)/?$index.php?ctrl=$1&id=$2&tab=$3[QSA,L]
重写规则^([^/]+)/(\d+/?index.php?ctrl=$1&id=$2[QSA,L]
重写规则^([^/]+)/?$index.php?ctrl=$1[QSA,L]

看来支持人员刚刚向您发送了他们在知识库中找到的第一个URL重写代码作为示例。这很正常:世界上没有任何托管服务可以提供免费咨询服务:)

我建议你尽量保持简单:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^/]+)/(\d+)/([^/]+)/?$ index.php?ctrl=$1&id=$2&tab=$3 [QSA,L]
    RewriteRule ^([^/]+)/(\d+)/?$         index.php?ctrl=$1&id=$2 [QSA,L]
    RewriteRule ^([^/]+)/?$               index.php?ctrl=$1 [QSA,L]
</IfModule>

重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写规则^([^/]+)/(\d+)/([^/]+)/?$index.php?ctrl=$1&id=$2&tab=$3[QSA,L]
重写规则^([^/]+)/(\d+/?index.php?ctrl=$1&id=$2[QSA,L]
重写规则^([^/]+)/?$index.php?ctrl=$1[QSA,L]

它确实对我有用。在什么方面对你不起作用?您是否有其他可能会产生干扰的规则?是否有mod_rewrite可用?是,mod_rewrite已启用。如果我插入website.com/home,它会将我带到index.php?ctrl=home,但如果在末尾加一个斜杠,它就不起作用,而且website.com/pelicula/0221889/也不起作用,我会得到:Page not found。您正在查找的页面可能已被删除、名称已更改或暂时不可用。感谢您的反馈。但是,说真的,不管是否使用斜杠(这就是
/?$
控制的内容),它都按原样为我工作。还有其他干扰,我想不出是什么:(它确实对我有用。它以什么方式对你不起作用?你有其他可能会干扰的规则吗?你有mod_rewrite可用吗?是的,mod_rewrite已启用。如果我插入website.com/home,它会将我带到index.php?ctrl=home,但如果在末尾放一个斜杠,它就不起作用,同样website.com/pelicula/0221889/也不起作用,我得到:Page no找不到。您正在查找的页面可能已被删除、名称已更改或暂时不可用。感谢您的反馈。但是,说真的,不管是否使用斜杠(这是
/?$
控件的内容)。还有其他干扰,我不知道是什么:(