我在项目中创建了名为inquiry的模块。
如果我在线以下跑 http://enqphp.intermesh.net/index.php?r=enquiry/Enquiryser/index/ 然后这个URL工作得很好。但我希望它像是短暂的 http://enqphp.intermesh.net/enquiry
为此,我在main.php
部分的URL manager
文件中做了一些修改:
return array(
'caseSensitive' => true,
'urlSuffix' => '/',
'showScriptName' => false,
'urlFormat' => 'path',
'rules' =>
array(
'/' => array('site/index'),
/* my files starting from here */
'<modules>/<controller:\w+>/<id:\d+>' => '<modules>/<controller>/view', '<modules>/<controller:\w+>/<action:\w+>/<id:\d+>' => '<modules>/<controller>/<action>',
'<modules>/<controller:\w+>/<action:\w+>/*' => '<modules>/<controller>/<action>',
'/enquiry/'=>'enquiry/Enquiryser/index',
),
)
但它不起作用并且找不到404页面。 任何人都可以帮助我,我错过了什么?
答案 0 :(得分:0)
您使用什么网络服务器? Nginx,Apache?
<强>的Apache 强> 要在您的URL中隐藏index.php,您可以将mod_rewrite指令添加到文档根目录中的.htaccess文件或虚拟主机配置中:
RewriteEngine on
# prevent httpd from serving dotfiles (.htaccess, .svn, .git, etc.)
RedirectMatch 403 /\..*$
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
<强> Nginx的强> 您必须为服务器配置以下配置
location / {
index index.html index.php;
try_files $uri $uri/ /index.php?$args;
}
答案 1 :(得分:0)