Fix wordpress installation 404 error
parent
089ec05358
commit
a2b82b8663
|
|
@ -685,7 +685,20 @@ if ! $SUDO_CMD $WP_EXECUTABLE core is-installed "${WP_RUN_ARGS[@]}"; then
|
|||
# Create .htaccess file for WordPress permalink functionality
|
||||
info "Creating .htaccess file for URL rewriting..."
|
||||
if [[ ! -f ".htaccess" ]]; then
|
||||
cat > .htaccess <<'EOF' || warning "Failed to create .htaccess file"
|
||||
# Define the path to the .htaccess template file
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
HTACCESS_TEMPLATE="$SCRIPT_DIR/templates/htaccess.template"
|
||||
|
||||
# Create temporary .htaccess file
|
||||
TEMP_HTACCESS=$(mktemp) || error_exit "Failed to create temporary file for .htaccess"
|
||||
|
||||
# Check if the template file exists and use it, otherwise use inline fallback
|
||||
if [[ -f "$HTACCESS_TEMPLATE" ]]; then
|
||||
info "Using external .htaccess template: $HTACCESS_TEMPLATE"
|
||||
cp "$HTACCESS_TEMPLATE" "$TEMP_HTACCESS" || error_exit "Failed to copy .htaccess template to temporary file"
|
||||
else
|
||||
warning "External template not found at $HTACCESS_TEMPLATE, using inline template"
|
||||
cat > "$TEMP_HTACCESS" <<'EOF' || error_exit "Failed to write .htaccess content to temporary file"
|
||||
# BEGIN LSCACHE
|
||||
## LITESPEED WP CACHE PLUGIN - Do not edit the contents of this block! ##
|
||||
<IfModule LiteSpeed>
|
||||
|
|
@ -701,10 +714,6 @@ RewriteCond %{QUERY_STRING} action=async_litespeed
|
|||
RewriteRule .* - [E=noabort:1]
|
||||
### marker ASYNC end ###
|
||||
|
||||
### marker CACHE RESOURCE start ###
|
||||
RewriteRule wp-content/.*/[^/]*(responsive|css|js|dynamic|loader|fonts)\.php - [E=cache-control:max-age=3600]
|
||||
### marker CACHE RESOURCE end ###
|
||||
|
||||
### marker DROPQS start ###
|
||||
CacheKeyModify -qs:fbclid
|
||||
CacheKeyModify -qs:gclid
|
||||
|
|
@ -735,20 +744,21 @@ RewriteRule . /index.php [L]
|
|||
</IfModule>
|
||||
|
||||
# END WordPress
|
||||
# BEGIN LiteSpeed
|
||||
# The directives (lines) between "BEGIN LiteSpeed" and "END LiteSpeed" are
|
||||
# dynamically generated, and should only be modified via WordPress filters.
|
||||
# Any changes to the directives between these markers will be overwritten.
|
||||
<IfModule Litespeed>
|
||||
SetEnv noabort 1
|
||||
</IfModule>
|
||||
# END LiteSpeed
|
||||
EOF
|
||||
# Set appropriate permissions for .htaccess
|
||||
if [[ -f ".htaccess" ]]; then
|
||||
sudo chmod 644 .htaccess
|
||||
sudo chown "${WEB_USER}:${WEB_GROUP}" .htaccess
|
||||
success ".htaccess file created and configured for LiteSpeed."
|
||||
fi
|
||||
|
||||
# Move the temporary file to the final location with proper ownership
|
||||
sudo mv "$TEMP_HTACCESS" ".htaccess" || error_exit "Failed to move .htaccess file to final location"
|
||||
|
||||
# Set appropriate permissions and ownership for .htaccess
|
||||
sudo chmod 644 .htaccess || error_exit "Failed to set permissions on .htaccess"
|
||||
sudo chown "${WEB_USER}:${WEB_GROUP}" .htaccess || error_exit "Failed to set ownership on .htaccess"
|
||||
|
||||
# Verify the ownership was set correctly
|
||||
if [[ "$(stat -c '%U:%G' .htaccess)" == "${WEB_USER}:${WEB_GROUP}" ]]; then
|
||||
success ".htaccess file created and configured for LiteSpeed with proper ownership (${WEB_USER}:${WEB_GROUP})."
|
||||
else
|
||||
warning ".htaccess file created but ownership verification failed. Current ownership: $(stat -c '%U:%G' .htaccess)"
|
||||
fi
|
||||
else
|
||||
info ".htaccess file already exists. Skipping creation."
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
# WordPress Installation Templates
|
||||
|
||||
This directory contains template files used by the WordPress installation script.
|
||||
|
||||
## Files
|
||||
|
||||
### `htaccess.template`
|
||||
This file contains the default `.htaccess` configuration that will be applied to new WordPress installations.
|
||||
|
||||
**Features:**
|
||||
- LiteSpeed Cache plugin configuration
|
||||
- Standard WordPress permalink structure
|
||||
- LiteSpeed-specific optimizations
|
||||
- Cache optimization directives
|
||||
|
||||
**Usage:**
|
||||
The `install-wordpress.sh` script will automatically use this template file if it exists. If the template file is missing, the script will fall back to using an inline version.
|
||||
|
||||
**Customization:**
|
||||
You can modify this template file to customize the default `.htaccess` configuration for your WordPress installations:
|
||||
|
||||
1. Edit `htaccess.template` with your preferred configuration
|
||||
2. Run the WordPress installation script normally
|
||||
3. The script will use your customized template
|
||||
|
||||
**Template Location:**
|
||||
The script looks for the template at: `scripts/templates/htaccess.template`
|
||||
|
||||
## Template System Benefits
|
||||
|
||||
- **Maintainability**: Easier to update and modify .htaccess configurations
|
||||
- **Version Control**: Track changes to .htaccess configurations
|
||||
- **Consistency**: Ensure all WordPress installations use the same base configuration
|
||||
- **Fallback**: Script continues to work even if template files are missing
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
# BEGIN LSCACHE
|
||||
## LITESPEED WP CACHE PLUGIN - Do not edit the contents of this block! ##
|
||||
<IfModule LiteSpeed>
|
||||
RewriteEngine on
|
||||
CacheLookup on
|
||||
RewriteRule .* - [E=Cache-Control:no-autoflush]
|
||||
RewriteRule litespeed/debug/.*\.log$ - [F,L]
|
||||
RewriteRule \.litespeed_conf\.dat - [F,L]
|
||||
|
||||
### marker ASYNC start ###
|
||||
RewriteCond %{REQUEST_URI} /wp-admin/admin-ajax\.php
|
||||
RewriteCond %{QUERY_STRING} action=async_litespeed
|
||||
RewriteRule .* - [E=noabort:1]
|
||||
### marker ASYNC end ###
|
||||
|
||||
### marker DROPQS start ###
|
||||
CacheKeyModify -qs:fbclid
|
||||
CacheKeyModify -qs:gclid
|
||||
CacheKeyModify -qs:utm*
|
||||
CacheKeyModify -qs:_ga
|
||||
### marker DROPQS end ###
|
||||
|
||||
</IfModule>
|
||||
## LITESPEED WP CACHE PLUGIN - Do not edit the contents of this block! ##
|
||||
# END LSCACHE
|
||||
# BEGIN NON_LSCACHE
|
||||
## LITESPEED WP CACHE PLUGIN - Do not edit the contents of this block! ##
|
||||
## LITESPEED WP CACHE PLUGIN - Do not edit the contents of this block! ##
|
||||
# END NON_LSCACHE
|
||||
|
||||
# BEGIN WordPress
|
||||
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
|
||||
# dynamically generated, and should only be modified via WordPress filters.
|
||||
# Any changes to the directives between these markers will be overwritten.
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine On
|
||||
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
||||
RewriteBase /
|
||||
RewriteRule ^index\.php$ - [L]
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteRule . /index.php [L]
|
||||
</IfModule>
|
||||
|
||||
# END WordPress
|
||||
Loading…
Reference in New Issue