我正在使用Apache使用.htaccess。
我希望能够输入如下网址:
example.com/bob
我想将URL重写为
example.com/index.php?c=bob
我也不希望它影响真实文件并正常加载它们
example.com/account.php
除了所有这些,我想重写没有.php的真实文件
example.com/account
到目前为止,我一直专注于index.php?c = bob任务。我到目前为止在我的.htaccess文件中有此文件
RewriteCond $1 !^(index\.php|account\.php|robots\.txt)
RewriteRule ^(.*)$ /index.php?c=$1 [L]
我想到的工作量大的解决方案是在上面的第1行中列出我的所有文件,我正在寻找一种更有效的方法
你可以尝试以下吗?
RewriteEngine ON
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)/?$ $1.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/?$ index.php?c=$1 [L]
它可以正确运行example.com/bob。我尝试了example.com/account.php,它的行为就像'account.php'是像'bob'这样的输入
@Jake,您能否告诉我htaccess文件中是否还有其他规则?
我把最重要的评论混在一起并进行了更新。.htaccess文件中没有其他任何内容。尽管example.com是一个子域,但sub.example.com
@Jake,好的,您的意思是这些规则工作正常,但您想将请求重定向到新的子域名吗?如果我没有记错,这里没有提到。
您最近的答案更新解决了它现在运行良好的问题。谢谢