Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 重写URL后出现“找不到对象”错误_.htaccess_Url Rewriting - Fatal编程技术网

.htaccess 重写URL后出现“找不到对象”错误

.htaccess 重写URL后出现“找不到对象”错误,.htaccess,url-rewriting,.htaccess,Url Rewriting,我的网站上有两种类型的URL,分别是 第一个URL集 <a href="services_name1">Service name1</a> 所以我在htaccess中使用了下面的代码,它可以正常工作 RewriteRule ^services/services_name1$ services_name1 我的问题是第二个URL。 对于第二个URL,我希望我的URL services/authors/services_name1 我在htaccess中尝试了以下代码

我的网站上有两种类型的URL,分别是

第一个URL集

<a href="services_name1">Service name1</a>
所以我在htaccess中使用了下面的代码,它可以正常工作

RewriteRule ^services/services_name1$ services_name1
我的问题是第二个URL。 对于第二个URL,我希望我的URL

services/authors/services_name1
我在htaccess中尝试了以下代码

RewriteRule ^/?services/authors/([0-9]+)$ /journel.php?name=$1
但它不起作用。我得了404分

我正在使用

.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteCond %{HTTPS} off
RewriteRule ^home$ index
RewriteRule ^about-us$ aboutus
RewriteRule ^services/authors$ authors


RewriteRule ^/?services/authors/([0-9\w]+)$ /journel.php?name=$1

FileETag MTime Size
</IfModule>
#开始WordPress
重新启动发动机
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}\.php-f
重写规则^(.*)$$1.php
重写条件%{HTTPS}关闭
重写规则^home$索引
改写规则^约美元约
重写规则^services/authors$authors
重写规则^/?services/authors/([0-9\w]+)$/journel.php?name=$1
FileTag MTime大小
你能帮我解决这个问题吗?

规则:

RewriteRule ^/?services/authors/([0-9]+)$ /journel.php?name=$1
仅匹配
/authors/
之后的数字(因为
0-9
),例如
/authors/22/
。要允许使用字符(单词/破折号)
\w

RewriteRule ^/?services/authors/([0-9\w]+)$ /journel.php?name=$1
使用完整的.htaccess更新订单:

# BEGIN WordPress
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteCond %{HTTPS} off
RewriteRule ^home$ index
RewriteRule ^about-us$ aboutus
RewriteRule ^services/authors$ authors
RewriteRule ^/?services/authors/([0-9\w]+)$ /journel.php?name=$1

FileETag MTime Size
</IfModule>
#开始WordPress
#开始WordPress
重新启动发动机
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}\.php-f
重写规则^(.*)$$1.php
重写条件%{HTTPS}关闭
重写规则^home$索引
改写规则^约美元约
重写规则^services/authors$authors
重写规则^/?services/authors/([0-9\w]+)$/journel.php?name=$1
FileTag MTime大小

查看regex备忘表:

不过,我得到了404。我用htaccess代码添加了和您的答案。您可以尝试使用
/services/authors/services\u name1
?如果这不起作用,您可以共享您的
.htaccess
文件吗@questionbankI在问题中添加。签出更新的示例@questionbankI我收到一个内部服务器错误。主页、关于我们和服务链接不起作用。因为我在底部添加了请求文件名代码。我想我不能在底部使用它
RewriteRule ^/?services/authors/([0-9\w]+)$ /journel.php?name=$1
# BEGIN WordPress
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteCond %{HTTPS} off
RewriteRule ^home$ index
RewriteRule ^about-us$ aboutus
RewriteRule ^services/authors$ authors
RewriteRule ^/?services/authors/([0-9\w]+)$ /journel.php?name=$1

FileETag MTime Size
</IfModule>