此处http://www.freewebhostingarea.com/faq.html的托管常见问题页面说:
是的,我们有完整的.htaccess支持。 已启用Mod_rewrite,您将能够使用永久链接或任何其他规则。
所以在我的.htaccess
文件中我有:
Options ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch -Indexes
#Options -Indexes
#Options All -Indexes <------------- I've also tried these commented lines
ErrorDocument 404 /404.php
RewriteEngine On
# Taking the advice of early posters to simplify my two rules into one
# my current rewrite rule is:
RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)/?$ viewpost.php?category=$1&number=$2
# Below were my original re-write rules when I posted this question:
#RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)$ viewpost.php?category=$1&number=$2
#RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)/$ viewpost.php?category=$1&number=$2
唯一可行的是我放入的404页面(第4行),我假设我无法阻止目录列表,因为服务器不允许覆盖。
我实际上找不到任何说我不能的声明,但它是一个免费的主持人,所以我就这么假设了。
但他们的常见问题解答明确指出我可以使用mod重写(也许我误解了?)。
当我输入时:
http://www.mywebsite.com/s/1
我只是得到了我的404页面而不是将其写入
viewpost.php?etc...
@ user2734435你的文件夹结构是什么?
我的大部分php文件都在我的根文件夹中。我有一个图像文件夹,我有一个文件夹,用于每个类别的帖子内容。
我相信的所有相关文件立即/明显与此问题相关的都在根文件夹中(可能还有其他一些我错过的相关内容,但我试图覆盖我上面的所有基础) 。我的viewpost.php,我的.htaccess我的404.php(并不是真正相关但包含在内,因为这是唯一可以在文件中按预期工作的行。)
public_html上的域?
这是一个免费的主机。没有public_html。我可以使用此webhost访问的范围可能是public_html。我将索引放在“root”文件夹中,这就是访问我的域时显示的内容。
你的php文件在哪里?
我在上面描述的“root”文件夹。
你的.htaccess文件在哪里?
根文件夹。我没有其他.htaccess文件
你在其他目录上有其他.htaccess文件吗?
见上文。
答案 0 :(得分:1)
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
ErrorDocument 404 /404.php
RewriteRule ^([^/]+)/([0-9]+)/?$ /viewpost.php?category=$1&number=$2 [L]
此([^/]+)
告诉您要捕获的所有内容都不是/
的$ 1。
此([0-9]+)
告诉您希望将任意数量的数字捕获为$ 2.
此/?
表示最后一个/
是可选的。
简而言之,这条规则意味着:
domain.com/anythinghere/anynumberhere
或
domain.com/anythinghere/anynumberhere/
Rediredts to:
domain.com/viewpost.php?category=anythinghere&number=anynumberhere
答案 1 :(得分:0)
试试这个
Options -Indexes +FollowSymLinks -MultiViews
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)/?$ viewpost.php?category=$1&number=$2