在YAMS中找不到404页面

时间:2012-02-04 15:00:30

标签: .htaccess http-status-code-404 modx

我想在这里提供一些帮助。我正在使用MODX和YAMS模块,这是多语言的。我按照YAMS的安装和设置文档进行操作,但仍然找不到404页面。

我想得到:

  

本地主机/子/ EN /的index.php?ID = 1

     

本地主机/子/ FR /的index.php?ID = 1

     

本地主机/子/ TH /的index.php?ID = 1

原始链接

  

本地主机/子/的index.php?ID = 1

这里是htaccess文件中的重写规则。我在“服务器配置”选项卡中从YAMS获得了重写规则。

# Friendly URLs
RewriteEngine On
RewriteBase /sub/

# Fix Apache internal dummy connections from breaking [(site_url)] cache
RewriteCond %{HTTP_USER_AGENT} ^.*internal\ dummy\ connection.*$ [NC]
RewriteRule .* - [F,L]

# Exclude /assets and /manager directories from rewrite rules
RewriteRule ^(manager|assets) - [L]

# Redirect from mydomain.com/rootname to mydomain.com/rootname/
RewriteRule ^en$ en/ [R=301,L]
RewriteRule ^fr$ fr/ [R=301,L]
RewriteRule ^th$ th/ [R=301,L]

# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^th/(.*)$ index.php?q=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^fr/(.*)$ index.php?q=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^en/(.*)$ index.php?q=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

我正试图到处搜索所有解决方案。仍然没有运气。请建议或指出我做错了什么?

提前致谢

2 个答案:

答案 0 :(得分:1)

如果你在前端获得像localhost / en / index.php?id = 1这样的链接你必须用“sub”填充“MODx子目录”字段。您可以在Modules-> Yams-> Other Params

中找到它

答案 1 :(得分:1)

实际上问题是.htaccess文件。我从YAMS复制所有.htaccess并替换整个原始的.htaccess文件。为了解决我的问题,我只复制友好的URL部分,并在原始.htaccess文件中仅替换此部分。

这里我从YAMS复制并替换我的.htaccess文件:

# Redirect from mydomain.com/rootname to mydomain.com/rootname/
RewriteRule ^en$ en/ [R=301,L]
RewriteRule ^fr$ fr/ [R=301,L]
RewriteRule ^th$ th/ [R=301,L]

# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^th/(.*)$ index.php?q=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^fr/(.*)$ index.php?q=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^en/(.*)$ index.php?q=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

非常感谢您的建议。