php - El servidor Apache ignora.htaccess
kohana-3 gentoo (3)
Como dijo Jim, si tiene acceso completo a su servidor, debería simplemente poner todo en los archivos de configuración del servidor.
Llegué aquí porque pensaba que mi servidor ignoraba mis propios archivos de configuración de htaccess / servidor. Sin embargo, resultó que tenía mod_expires y mod_rewrite deshabilitados. Después de haber investigado a los dos, todo estaba funcionando de nuevo como debería.
Puede habilitarlos ejecutando estos comandos:
sudo a2enmod expires
sudo a2enmod rewrite
Luego reinicia apache
service apache2 restart
Espero que esto ayude a alguien por ahí!
Intento que un sitio web funcione en mi entorno de prueba, pero de alguna manera no funciona. Puedo cargar la página de índice normal, pero cuando quiero acceder / página / probar arroja un error que dice que la página no existe. Mi registro dice:
File does not exist: /home/page_url/www/page
Lo que de hecho es cierto, pero debería llegar al controlador de mi Página y cargar el método de prueba.
Mi .htaccess se ve así:
# Turn on URL rewriting
RewriteEngine On
# Installation directory
RewriteBase /
# Protect hidden files from being viewed
<Files .*>
Order Deny,Allow
Deny From All
</Files>
# Protect application and system files from being viewed
RewriteRule ^(?:application|modules|system)/b.* /$0 [L]
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]
Mi configuración de vhost se ve así:
<VirtualHost *:80>
ServerName page_url
Include /etc/apache2/vhosts.d/vhco.include
DocumentRoot "/home/page_url/www/"
# Logging
CustomLog /var/log/apache2/access_log common
ErrorLog /var/log/apache2/error_log
# This should be changed to whatever you set DocumentRoot to.
<Directory "/home/page_url/www/">
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn''t give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
Options Indexes FollowSymLinks
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
AllowOverride All
# Controls who can get stuff from this server.
Order allow,deny
Allow from All
</Directory>
<IfModule alias_module>
# Redirect: Allows you to tell clients about documents that used to
# exist in your server''s namespace, but do not anymore. The client
# will make a new request for the document at its new location.
# Example:
# Redirect permanent /foo http://www.example.com/bar
# Alias: Maps web paths into filesystem paths and is used to
# access content that does not live under the DocumentRoot.
# Example:
# Alias /webpath /full/filesystem/path
#
# If you include a trailing / on /webpath then the server will
# require it to be present in the URL. You will also likely
# need to provide a <Directory> section to allow access to
# the filesystem path.
# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the target directory are treated as applications and
# run by the server when requested rather than as documents sent to the
# client. The same rules about trailing "/" apply to ScriptAlias
# directives as to Alias.
ScriptAlias /cgi-bin/ "/var/www/localhost/cgi-bin/"
</IfModule>
# "/var/www/localhost/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
<Directory "/home/page_url/www/">
AllowOverride None
Options None
Order allow,deny
Allow from All
</Directory>
</VirtualHost>
Estoy usando Gentoo.
Cualquier ayuda sería apreciada.
Una cosa para recordar si las reglas de reescritura aún no funcionan:
¡También active el módulo ModRewrite! No es por defecto en Ubuntu.
<Directory "/home/page_url/www/">
AllowOverride None
Este AllowOverride None
inhabilita la lectura de los archivos .htaccess
. Ver el manual .
Además, tenga en cuenta que no hay nada mágico sobre los archivos .htaccess
. Son una tosca solución para no tener acceso completo a la configuración del servidor. Todo lo que son es una pieza de configuración de Apache. Si tiene acceso completo a la configuración del servidor, debe poner cosas como esta en la configuración de vhost, no en archivos .htaccess
.